Built motion from commit a5685af.|0.0.128
[motion.git] / server / api / contact_manager / contact_manager.controller.js
index f2641f7..2467b48 100644 (file)
@@ -1,501 +1 @@
-'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);
-}
+var _0x109a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\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\x51\x75\x65\x75\x65","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65\x48\x69\x73\x74\x6F\x72\x79","\x68\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x52\x6F\x6F\x6D\x48\x69\x73\x74\x6F\x72\x79","\x46\x61\x78\x52\x6F\x6F\x6D","\x53\x6D\x73\x52\x6F\x6F\x6D","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x4C\x69\x73\x74","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C\x48\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\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","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x61\x73\x79\x6E\x63","\x69\x6E\x64\x65\x78","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x72\x6F\x77\x73","\x6D\x65\x72\x67\x65","\x6C\x65\x6E\x67\x74\x68","\x2C","\x6A\x6F\x69\x6E","\x6E\x61\x6D\x65","\x6D\x61\x70","\x53\x45\x4C\x45\x43\x54\x20\x69\x64\x2C\x25\x73\x20\x46\x52\x4F\x4D\x20\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73\x20\x57\x48\x45\x52\x45\x20\x69\x64\x20\x49\x4E\x20\x28","\x69\x64","\x29","\x66\x6F\x72\x6D\x61\x74","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x71\x75\x65\x72\x79","\x6B\x65\x79\x73","\x63\x66\x5F","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x66\x69\x6C\x74\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x64\x65\x73\x63\x72\x69\x62\x65","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x6C\x69\x73\x74","\x63\x6F\x6D\x70\x61\x6E\x79","\x63\x6F\x6D\x70\x61\x6E\x79\x5F\x6C\x69\x73\x74\x5F\x66\x69\x6C\x74\x65\x72","\x73\x63\x6F\x70\x65","\x67\x65\x74\x4C\x69\x73\x74\x73","\x75\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x67\x65\x6E\x74","\x63\x6F\x75\x6E\x74","\x72\x6F\x6C\x65","\x67\x65\x74\x4C\x6F\x67","\x64\x65\x74\x61\x69\x6C","\x67\x65\x6E\x65\x72\x61\x6C","\x73\x68\x6F\x77","\x70\x68\x6F\x6E\x65","\x6C\x6F\x67\x54\x79\x70\x65","\x6A\x6F\x75\x72\x6E\x61\x6C","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x6D\x6F\x62\x69\x6C\x65","\x73\x6F\x75\x72\x63\x65","\x66\x72\x6F\x6D","\x65\x6D\x61\x69\x6C","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x64\x61\x79","\x73\x74\x61\x72\x74\x4F\x66","\x76\x69\x73\x69\x74\x6F\x72\x65\x6D\x61\x69\x6C","\x63\x68\x61\x74","\x66\x61\x78","\x63\x6F\x6E\x74\x61\x63\x74","\x73\x6D\x73","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x71\x75\x65\x75\x65","\x70\x61\x72\x61\x6D\x73","\x6E\x75\x6C\x6C","\x66\x6F\x72\x45\x61\x63\x68","\x53\x45\x4C\x45\x43\x54\x20\x25\x73\x20\x46\x52\x4F\x4D\x20\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3D\x25\x73","\x4C\x69\x73\x74\x49\x64","\x67\x65\x74\x45\x76\x65\x6E\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x76\x6F\x69\x63\x65","\x6D\x61\x69\x6C","\x65\x76\x65\x6E\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x63\x72\x65\x61\x74\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x62\x6F\x64\x79","\x25\x73\x3D\x27\x25\x73\x27","\x70\x75\x73\x68","\x55\x50\x44\x41\x54\x45\x20\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73\x20\x53\x45\x54\x20\x25\x73\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3D\x25\x73","\x55\x73\x65\x72\x49\x64","\x61\x6C\x6C","\x74\x61\x67\x73","\x63\x6F\x70\x79","\x66\x6F\x72\x4F\x77\x6E","\x63\x6C\x6F\x6E\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x6B\x6F","\x6F\x6B","\x66\x6F\x72\x45\x61\x63\x68\x4F\x66","\x75\x6E\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x6F\x6C\x64\x43\x6F\x6E\x74\x61\x63\x74","\x64\x65\x73\x74\x72\x6F\x79","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0x109a[0];var _=require(_0x109a[1]);var moment=require(_0x109a[2]);var Contact=require(_0x109a[4])[_0x109a[3]];var User=require(_0x109a[4])[_0x109a[5]];var ContactPhone=require(_0x109a[4])[_0x109a[6]];var ContactEmail=require(_0x109a[4])[_0x109a[7]];var CustomField=require(_0x109a[4])[_0x109a[8]];var ReportCall=require(_0x109a[4])[_0x109a[9]];var ReportQueue=require(_0x109a[4])[_0x109a[10]];var ReportQueueHistory=require(_0x109a[4])[_0x109a[12]][_0x109a[11]];var ReportChatRoom=require(_0x109a[4])[_0x109a[13]];var ReportChatRoomHistory=require(_0x109a[4])[_0x109a[12]][_0x109a[14]];var FaxRoom=require(_0x109a[4])[_0x109a[15]];var SmsRoom=require(_0x109a[4])[_0x109a[16]];var ReportIntegration=require(_0x109a[4])[_0x109a[17]];var List=require(_0x109a[4])[_0x109a[18]];var ReportCallHistory=require(_0x109a[4])[_0x109a[12]][_0x109a[19]];var ReportMailSession=require(_0x109a[4])[_0x109a[20]];var MailRoom=require(_0x109a[4])[_0x109a[21]];var ReportMailSessionHistory=require(_0x109a[4])[_0x109a[12]][_0x109a[22]];var Tag=require(_0x109a[4])[_0x109a[23]];var stream=require(_0x109a[24]);var sequelize=require(_0x109a[4])[_0x109a[25]];var util=require(_0x109a[26]);var Util=require(_0x109a[27]);var Async=require(_0x109a[28]);exports[_0x109a[29]]= function(_0x9d59x1b,_0x9d59x1c,_0x9d59x1d){var _0x9d59x1e;switch(_0x9d59x1b[_0x109a[63]][_0x109a[67]]){case _0x109a[65]:return User[_0x109a[64]](_0x9d59x1b[_0x109a[63]][_0x109a[43]])[_0x109a[34]](function(_0x9d59x29){return _0x9d59x29[_0x109a[62]]()})[_0x109a[34]](function(_0x9d59x27){var _0x9d59x28=_[_0x109a[41]](_0x9d59x27,_0x109a[43]);return Contact[_0x109a[61]](_0x109a[58],_0x109a[59],{method:[_0x109a[60],_0x9d59x1b[_0x109a[48]]]})[_0x109a[57]](Util[_0x109a[56]](_0x9d59x1b[_0x109a[48]],{ListId:{$in:_0x9d59x28}}))})[_0x109a[34]](function(_0x9d59x26){_0x9d59x1e= {rows:_[_0x109a[41]](_0x9d59x26[_0x109a[35]],_0x109a[54]),count:_0x9d59x26[_0x109a[35]]};return Contact[_0x109a[55]]()})[_0x109a[34]](function(_0x9d59x24){_0x9d59x24= _[_0x109a[52]](_[_0x109a[49]](_0x9d59x24),function(_0x9d59x25){return _[_0x109a[51]](_0x9d59x25,_0x109a[50])});return CustomField[_0x109a[53]]({where:{name:_0x9d59x24}})})[_0x109a[34]](function(_0x9d59x22){if(_0x9d59x22[_0x109a[37]]){var _0x9d59x23=_[_0x109a[41]](_0x9d59x22,_0x109a[40])[_0x109a[39]](_0x109a[38]);return sequelize[_0x109a[48]](util[_0x109a[45]](_0x109a[42]+ _[_0x109a[41]](_0x9d59x1e[_0x109a[35]],_0x109a[43])[_0x109a[39]](_0x109a[38])+ _0x109a[44],_0x9d59x23),{type:sequelize[_0x109a[47]][_0x109a[46]]})}})[_0x109a[34]](function(_0x9d59x21){_[_0x109a[36]](_0x9d59x1e[_0x109a[35]],_0x9d59x21);return _0x9d59x1e})[_0x109a[34]](function(_0x9d59x20){_0x9d59x1c[_0x109a[33]](200)[_0x109a[32]](_0x9d59x20)})[_0x109a[31]](function(_0x9d59x1f){console[_0x109a[30]](_0x9d59x1f);return handleError(_0x9d59x1c,_0x9d59x1f)});default:return Contact[_0x109a[61]](_0x109a[58],_0x109a[59],{method:[_0x109a[60],_0x9d59x1b[_0x109a[48]]]})[_0x109a[57]](Util[_0x109a[56]](_0x9d59x1b[_0x109a[48]]))[_0x109a[34]](function(_0x9d59x26){_0x9d59x1e= {rows:_[_0x109a[41]](_0x9d59x26[_0x109a[35]],_0x109a[54]),count:_0x9d59x26[_0x109a[66]]};return Contact[_0x109a[55]]()})[_0x109a[34]](function(_0x9d59x24){_0x9d59x24= _[_0x109a[52]](_[_0x109a[49]](_0x9d59x24),function(_0x9d59x25){return _[_0x109a[51]](_0x9d59x25,_0x109a[50])});return CustomField[_0x109a[53]]({where:{name:_0x9d59x24}})})[_0x109a[34]](function(_0x9d59x22){if(_0x9d59x1e[_0x109a[35]][_0x109a[37]]&& _0x9d59x22[_0x109a[37]]){var _0x9d59x23=_[_0x109a[41]](_0x9d59x22,_0x109a[40])[_0x109a[39]](_0x109a[38]);return sequelize[_0x109a[48]](util[_0x109a[45]](_0x109a[42]+ _[_0x109a[41]](_0x9d59x1e[_0x109a[35]],_0x109a[43])[_0x109a[39]](_0x109a[38])+ _0x109a[44],_0x9d59x23),{type:sequelize[_0x109a[47]][_0x109a[46]]})}})[_0x109a[34]](function(_0x9d59x21){if(_0x9d59x21){_[_0x109a[36]](_0x9d59x1e[_0x109a[35]],_0x9d59x21)};return _0x9d59x1e})[_0x109a[34]](function(_0x9d59x20){_0x9d59x1c[_0x109a[33]](200)[_0x109a[32]](_0x9d59x20)})[_0x109a[31]](function(_0x9d59x1f){console[_0x109a[30]](_0x9d59x1f);return handleError(_0x9d59x1c,_0x9d59x1f)})}};exports[_0x109a[55]]= function(_0x9d59x1b,_0x9d59x1c){return Contact[_0x109a[55]]()[_0x109a[34]](function(_0x9d59x24){return _0x9d59x1c[_0x109a[33]](200)[_0x109a[32]](_0x9d59x24)})[_0x109a[31]](function(_0x9d59x1f){return handleError(_0x9d59x1c,_0x9d59x1f)})};exports[_0x109a[68]]= function(_0x9d59x1b,_0x9d59x1c,_0x9d59x1d){_0x9d59x1b[_0x109a[48]][_0x109a[69]]= _0x9d59x1b[_0x109a[48]][_0x109a[69]]|| _0x109a[70];_0x9d59x1b[_0x109a[48]][_0x109a[71]]= _0x9d59x1b[_0x109a[48]][_0x109a[71]]|| _0x109a[72];_0x9d59x1b[_0x109a[48]][_0x109a[73]]= _0x9d59x1b[_0x109a[48]][_0x109a[73]]|| _0x109a[74];_0x9d59x1b[_0x109a[48]][_0x109a[75]]= _0x9d59x1b[_0x109a[48]][_0x109a[75]]|| _0x109a[76];var _0x9d59x2a,_0x9d59x2b={};return Contact[_0x109a[64]](_0x9d59x1b[_0x109a[94]][_0x109a[43]])[_0x109a[34]](function(_0x9d59x2c){if(!_0x9d59x2c){return _0x9d59x1c[_0x109a[77]](404)};switch(_0x9d59x1b[_0x109a[48]][_0x109a[69]]){case _0x109a[70]:switch(_0x9d59x1b[_0x109a[48]][_0x109a[71]]){case _0x109a[72]:_0x9d59x2a= (_0x9d59x1b[_0x109a[48]][_0x109a[73]]=== _0x109a[12])?ReportCallHistory:ReportCall;if(_0x9d59x1b[_0x109a[48]][_0x109a[75]]=== _0x109a[78]){_0x9d59x2b[_0x109a[79]]= [_0x9d59x2c[_0x109a[72]],_0x9d59x2c[_0x109a[80]]]}else {_0x9d59x2b[_0x109a[81]]= [_0x9d59x2c[_0x109a[72]],_0x9d59x2c[_0x109a[80]]]};break;case _0x109a[83]:_0x9d59x2a= MailRoom;_0x9d59x2b[_0x109a[82]]= _0x9d59x2c[_0x109a[83]];if(_0x9d59x1b[_0x109a[48]][_0x109a[73]]=== _0x109a[12]){_0x9d59x2b[_0x109a[84]]= {$lt:moment()[_0x109a[86]](_0x109a[85])}}else {_0x9d59x2b[_0x109a[84]]= {$gte:moment()[_0x109a[86]](_0x109a[85])}};break;case _0x109a[88]:_0x9d59x2a= (_0x9d59x1b[_0x109a[48]][_0x109a[73]]=== _0x109a[12])?ReportChatRoomHistory:ReportChatRoom;_0x9d59x2b[_0x109a[87]]= _0x9d59x2c[_0x109a[83]];break;case _0x109a[89]:_0x9d59x2a= FaxRoom;_0x9d59x2b[_0x109a[82]]= _0x9d59x2c[_0x109a[89]];if(_0x9d59x1b[_0x109a[48]][_0x109a[73]]=== _0x109a[12]){_0x9d59x2b[_0x109a[84]]= {$lt:moment()[_0x109a[86]](_0x109a[85])}}else {_0x9d59x2b[_0x109a[84]]= {$gte:moment()[_0x109a[86]](_0x109a[85])}};break;case _0x109a[91]:_0x9d59x2a= SmsRoom;_0x9d59x2b[_0x109a[90]]= [_0x9d59x2c[_0x109a[72]],_0x9d59x2c[_0x109a[80]]];if(_0x9d59x1b[_0x109a[48]][_0x109a[73]]=== _0x109a[12]){_0x9d59x2b[_0x109a[84]]= {$lt:moment()[_0x109a[86]](_0x109a[85])}}else {_0x9d59x2b[_0x109a[84]]= {$gte:moment()[_0x109a[86]](_0x109a[85])}};break;default:_0x9d59x2a= (_0x9d59x1b[_0x109a[48]][_0x109a[73]]=== _0x109a[12])?ReportCallHistory:ReportCall};break;case _0x109a[93]:switch(_0x9d59x1b[_0x109a[48]][_0x109a[71]]){case _0x109a[72]:_0x9d59x2a= (_0x9d59x1b[_0x109a[48]][_0x109a[73]]=== _0x109a[12])?ReportQueueHistory:ReportQueue;_0x9d59x2b[_0x109a[92]]= [_0x9d59x2c[_0x109a[72]],_0x9d59x2c[_0x109a[80]]];break;case _0x109a[83]:return _0x9d59x1c[_0x109a[77]](404);default:_0x9d59x2a= (_0x9d59x1b[_0x109a[48]][_0x109a[73]]=== _0x109a[12])?ReportQueueHistory:ReportQueue};break;default:_0x9d59x2a= ReportCall};delete _0x9d59x1b[_0x109a[48]][_0x109a[69]];delete _0x9d59x1b[_0x109a[48]][_0x109a[71]];delete _0x9d59x1b[_0x109a[48]][_0x109a[73]];delete _0x9d59x1b[_0x109a[48]][_0x109a[75]];return _0x9d59x2a[_0x109a[57]](Util[_0x109a[56]](_0x9d59x1b[_0x109a[48]],_0x9d59x2b))})[_0x109a[34]](function(_0x9d59x20){_0x9d59x1c[_0x109a[33]](200)[_0x109a[32]](_0x9d59x20)})[_0x109a[31]](function(_0x9d59x1f){console[_0x109a[30]](_0x9d59x1f);return handleError(_0x9d59x1c,_0x9d59x1f)})};exports[_0x109a[71]]= function(_0x9d59x1b,_0x9d59x1c){var _0x9d59x2d;return Contact[_0x109a[61]](_0x109a[58],_0x109a[63],_0x109a[59])[_0x109a[64]](_0x9d59x1b[_0x109a[94]][_0x109a[43]])[_0x109a[34]](function(_0x9d59x32){if(!_0x9d59x32){return _0x9d59x1c[_0x109a[77]](404)};_0x9d59x2d= _0x9d59x32;return CustomField[_0x109a[53]]({where:{ListId:_0x9d59x2d[_0x109a[98]]}})})[_0x109a[34]](function(_0x9d59x22){if(_0x9d59x22[_0x109a[37]]){var _0x9d59x23=_[_0x109a[41]](_0x9d59x22,_0x109a[40])[_0x109a[39]](_0x109a[38]);return sequelize[_0x109a[48]](util[_0x109a[45]](_0x109a[97],_0x9d59x23,_0x9d59x1b[_0x109a[94]][_0x109a[43]]),{type:sequelize[_0x109a[47]][_0x109a[46]]})}})[_0x109a[34]](function(_0x9d59x2e){if(_0x9d59x2e){_[_0x109a[96]](_0x9d59x2e[0],function(_0x9d59x2f,_0x9d59x30,_0x9d59x31){if(_0x9d59x2f=== _0x109a[95]){_0x9d59x31[_0x9d59x30]= null}});_[_0x109a[36]](_0x9d59x2d[_0x109a[54]],_0x9d59x2e[0])}})[_0x109a[34]](function(){return _0x9d59x1c[_0x109a[33]](200)[_0x109a[32]](_0x9d59x2d)})[_0x109a[31]](function(_0x9d59x1f){console[_0x109a[30]](_0x9d59x1f);return handleError(_0x9d59x1c,_0x9d59x1f)})};exports[_0x109a[99]]= function(_0x9d59x1b,_0x9d59x1c){return ReportIntegration[_0x109a[64]](_0x9d59x1b[_0x109a[94]][_0x109a[43]])[_0x109a[34]](function(_0x9d59x33){var _0x9d59x2b={};switch(_0x9d59x33[_0x109a[102]]){case _0x109a[100]:_0x9d59x2b= {$or:{phone:_0x9d59x33[_0x109a[92]],mobile:_0x9d59x33[_0x109a[92]]}};break;case _0x109a[101]:_0x9d59x2b= {email:_0x9d59x33[_0x109a[82]]};break;default:_0x9d59x2b= {}};return Contact[_0x109a[57]]({where:_0x9d59x2b,include:[{model:List,where:{id:_[_0x109a[41]](_[_0x109a[41]](_0x9d59x1b[_0x109a[63]].Lists,_0x109a[54]),_0x109a[43])}}]})})[_0x109a[34]](function(_0x9d59x26){return _0x9d59x1c[_0x109a[33]](200)[_0x109a[32]](_0x9d59x26)})[_0x109a[31]](function(_0x9d59x1f){console[_0x109a[30]](_0x9d59x1f);return handleError(_0x9d59x1c,_0x9d59x1f)})};exports[_0x109a[103]]= function(_0x9d59x1b,_0x9d59x1c,_0x9d59x1d){var _0x9d59x2d;return Tag[_0x109a[53]]()[_0x109a[34]](function(_0x9d59x34){var _0x9d59x35=[];var _0x9d59x36=_[_0x109a[41]](_[_0x109a[41]](_0x9d59x34,_0x109a[54]),_0x109a[40]);if(_0x9d59x1b[_0x109a[105]][_0x109a[111]]){_0x9d59x1b[_0x109a[105]][_0x109a[111]][_0x109a[96]](function(_0x9d59x25){if(!_[_0x109a[51]](_0x9d59x36,_0x9d59x25)){_0x9d59x35[_0x109a[107]](Tag[_0x109a[103]]({name:_0x9d59x25}))}})};return _0x9d59x35})[_0x109a[110]]()[_0x109a[34]](function(){_0x9d59x1b[_0x109a[105]][_0x109a[109]]= _0x9d59x1b[_0x109a[63]][_0x109a[43]];return Contact[_0x109a[103]](_0x9d59x1b[_0x109a[105]])})[_0x109a[34]](function(_0x9d59x2c){_0x9d59x2d= _0x9d59x2c;return CustomField[_0x109a[53]]({where:{ListId:_0x9d59x2d[_0x109a[98]]}})})[_0x109a[34]](function(_0x9d59x22){if(_0x9d59x22[_0x109a[37]]){var _0x9d59x23=[];_0x9d59x22[_0x109a[96]](function(_0x9d59x25){if(_0x9d59x1b[_0x109a[105]][_0x109a[104]](_0x9d59x25[_0x109a[40]])){_0x9d59x23[_0x109a[107]](util[_0x109a[45]](_0x109a[106],_0x9d59x25[_0x109a[40]],_0x9d59x1b[_0x109a[105]][_0x9d59x25[_0x109a[40]]]))}});if(_0x9d59x23[_0x109a[37]]){_0x9d59x23= _0x9d59x23[_0x109a[39]](_0x109a[38]);return sequelize[_0x109a[48]](util[_0x109a[45]](_0x109a[108],_0x9d59x23,_0x9d59x2d[_0x109a[43]]))}}})[_0x109a[34]](function(){return _0x9d59x1c[_0x109a[33]](201)[_0x109a[32]](_0x9d59x2d)})[_0x109a[31]](function(_0x9d59x1f){console[_0x109a[30]](_0x9d59x1f);return _0x9d59x1d(_0x9d59x1f)})};exports[_0x109a[112]]= function(_0x9d59x1b,_0x9d59x1c,_0x9d59x1d){var _0x9d59x2d,_0x9d59x37;return Contact[_0x109a[64]](_0x9d59x1b[_0x109a[94]][_0x109a[43]])[_0x109a[34]](function(_0x9d59x2c){_0x9d59x2d= _0x9d59x2c[_0x109a[54]];_0x9d59x37= _[_0x109a[114]](_0x9d59x2c[_0x109a[54]]);delete _0x9d59x37[_0x109a[43]];_0x9d59x37[_0x109a[109]]= _0x9d59x1b[_0x109a[63]][_0x109a[43]];_0x9d59x37[_0x109a[98]]= _0x9d59x1b[_0x109a[105]][_0x109a[98]];_0x9d59x37[_0x109a[111]]= _0x9d59x37[_0x109a[111]]?_0x9d59x37[_0x109a[111]][_0x109a[116]](_0x109a[115]):[];if(_0x9d59x37[_0x109a[111]][_0x109a[37]]> 1){_0x9d59x37[_0x109a[111]][_0x109a[117]]()};return Contact[_0x109a[103]](_0x9d59x37)})[_0x109a[34]](function(_0x9d59x38){_0x9d59x37= _0x9d59x38;if(_0x9d59x2d[_0x109a[98]]=== _0x9d59x1b[_0x109a[105]][_0x109a[98]]){return CustomField[_0x109a[53]]({where:{ListId:_0x9d59x2d[_0x109a[98]]}})}})[_0x109a[34]](function(_0x9d59x22){if(_0x9d59x22&& _0x9d59x22[_0x109a[37]]){var _0x9d59x23=_[_0x109a[41]](_0x9d59x22,_0x109a[40])[_0x109a[39]](_0x109a[38]);return sequelize[_0x109a[48]](util[_0x109a[45]](_0x109a[97],_0x9d59x23,_0x9d59x2d[_0x109a[43]]),{type:sequelize[_0x109a[47]][_0x109a[46]]})}})[_0x109a[34]](function(_0x9d59x2e){if(_0x9d59x2e){var _0x9d59x23=[];_[_0x109a[113]](_0x9d59x2e[0],function(_0x9d59x2f,_0x9d59x30){_0x9d59x23[_0x109a[107]](util[_0x109a[45]](_0x109a[106],_0x9d59x30,_0x9d59x2f))});if(_0x9d59x23[_0x109a[37]]){_0x9d59x23= _0x9d59x23[_0x109a[39]](_0x109a[38]);return sequelize[_0x109a[48]](util[_0x109a[45]](_0x109a[108],_0x9d59x23,_0x9d59x37[_0x109a[43]]))}}})[_0x109a[34]](function(){return _0x9d59x1c[_0x109a[33]](201)[_0x109a[32]](_0x9d59x37)})[_0x109a[31]](function(_0x9d59x1f){console[_0x109a[30]](_0x9d59x1f);return _0x9d59x1d(_0x9d59x1f)})};exports[_0x109a[118]]= function(_0x9d59x1b,_0x9d59x1c,_0x9d59x1d){var _0x9d59x39=[];var _0x9d59x3a={ok:0,ko:0};return Tag[_0x109a[53]]()[_0x109a[34]](function(_0x9d59x34){var _0x9d59x35=[],_0x9d59x3d=[];var _0x9d59x36=_[_0x109a[41]](_[_0x109a[41]](_0x9d59x34,_0x109a[54]),_0x109a[40]);_0x9d59x1b[_0x109a[105]][_0x109a[119]][_0x109a[96]](function(_0x9d59x2c){if(_0x9d59x2c[_0x109a[111]]){_0x9d59x3d= _[_0x109a[123]](_0x9d59x3d,_0x9d59x2c[_0x109a[111]])}});_0x9d59x3d[_0x109a[96]](function(_0x9d59x25){if(!_[_0x109a[51]](_0x9d59x36,_0x9d59x25)){_0x9d59x35[_0x109a[107]](Tag[_0x109a[103]]({name:_0x9d59x25}))}});return _0x9d59x35})[_0x109a[110]]()[_0x109a[34]](function(){var _0x9d59x3c=[];Async[_0x109a[122]](_0x9d59x1b[_0x109a[105]][_0x109a[119]],function(_0x9d59x2c){_0x9d59x2c[_0x109a[109]]= _0x9d59x1b[_0x109a[63]][_0x109a[43]];_0x9d59x3c[_0x109a[107]](Contact[_0x109a[103]](_0x9d59x2c)[_0x109a[34]](function(_0x9d59x2c){_0x9d59x39[_0x109a[107]](_0x9d59x2c);_0x9d59x3a[_0x109a[121]]++})[_0x109a[31]](function(_0x9d59x1f){_0x9d59x3a[_0x109a[120]]++}))});return _0x9d59x3c})[_0x109a[110]]()[_0x109a[34]](function(){return CustomField[_0x109a[53]]({where:{ListId:{$in:_[_0x109a[41]](_0x9d59x1b[_0x109a[105]][_0x109a[119]],_0x109a[98])}}})})[_0x109a[34]](function(_0x9d59x22){var _0x9d59x3b=[];if(_0x9d59x22[_0x109a[37]]){var _0x9d59x23=[];_0x9d59x39[_0x109a[96]](function(_0x9d59x2c){_0x9d59x23= [];_0x9d59x22[_0x109a[96]](function(_0x9d59x25){if(_0x9d59x2c[_0x109a[104]](_0x9d59x25[_0x109a[40]])){_0x9d59x23[_0x109a[107]](util[_0x109a[45]](_0x109a[106],_0x9d59x25[_0x109a[40]],_0x9d59x1b[_0x109a[105]][_0x9d59x25[_0x109a[40]]]))}});if(_0x9d59x23[_0x109a[37]]){_0x9d59x23= _0x9d59x23[_0x109a[39]](_0x109a[38]);_0x9d59x3b[_0x109a[107]](sequelize[_0x109a[48]](util[_0x109a[45]](_0x109a[108],_0x9d59x23,_0x9d59x2c[_0x109a[43]])))}})};return _0x9d59x3b})[_0x109a[110]]()[_0x109a[34]](function(){return _0x9d59x1c[_0x109a[33]](201)[_0x109a[32]](_0x9d59x3a)})[_0x109a[31]](function(_0x9d59x1f){console[_0x109a[30]](_0x9d59x1f);return _0x9d59x1d(_0x9d59x1f)})};exports[_0x109a[124]]= function(_0x9d59x1b,_0x9d59x1c,_0x9d59x1d){return Promise[_0x109a[110]]([])[_0x109a[34]](updateContact(_0x9d59x1b,_0x9d59x1c))[_0x109a[34]](function(_0x9d59x2c){return _0x9d59x1c[_0x109a[33]](200)[_0x109a[32]](_0x9d59x2c)})[_0x109a[31]](function(_0x9d59x1f){console[_0x109a[30]](_0x9d59x1f);return handleError(_0x9d59x1c,_0x9d59x1f)})};exports[_0x109a[36]]= function(_0x9d59x1b,_0x9d59x1c,_0x9d59x1d){var _0x9d59x2d;return Promise[_0x109a[110]]([])[_0x109a[34]](updateContact(_0x9d59x1b,_0x9d59x1c))[_0x109a[34]](function(_0x9d59x2c){_0x9d59x2d= _0x9d59x2c;if(_0x9d59x1b[_0x109a[105]][_0x109a[125]]){return Contact[_0x109a[126]]({where:{id:_0x9d59x1b[_0x109a[105]][_0x109a[125]]},individualHooks:true})}})[_0x109a[34]](function(){return _0x9d59x1c[_0x109a[33]](200)[_0x109a[32]](_0x9d59x2d)})[_0x109a[31]](function(_0x9d59x1f){console[_0x109a[30]](_0x9d59x1f);return handleError(_0x9d59x1c,_0x9d59x1f)})};function updateContact(_0x9d59x1b,_0x9d59x1c){return function(){var _0x9d59x2d;return Tag[_0x109a[53]]()[_0x109a[34]](function(_0x9d59x34){var _0x9d59x35=[];var _0x9d59x36=_[_0x109a[41]](_[_0x109a[41]](_0x9d59x34,_0x109a[54]),_0x109a[40]);if(_0x9d59x1b[_0x109a[105]][_0x109a[111]]){_0x9d59x1b[_0x109a[105]][_0x109a[111]][_0x109a[96]](function(_0x9d59x25){if(!_[_0x109a[51]](_0x9d59x36,_0x9d59x25)){_0x9d59x35[_0x109a[107]](Tag[_0x109a[103]]({name:_0x9d59x25}))}})};return _0x9d59x35})[_0x109a[34]](function(){return Contact[_0x109a[64]](_0x9d59x1b[_0x109a[94]][_0x109a[43]])})[_0x109a[34]](function(_0x9d59x2c){if(!_0x9d59x2c){return _0x9d59x1c[_0x109a[77]](404)};delete _0x9d59x1b[_0x109a[105]][_0x109a[43]];return _0x9d59x2c[_0x109a[127]](_0x9d59x1b[_0x109a[105]])})[_0x109a[34]](function(_0x9d59x2c){_0x9d59x2d= _0x9d59x2c;return CustomField[_0x109a[53]]({where:{ListId:_0x9d59x2d[_0x109a[98]]}})})[_0x109a[34]](function(_0x9d59x22){if(_0x9d59x22[_0x109a[37]]){var _0x9d59x23=[];_0x9d59x22[_0x109a[96]](function(_0x9d59x25){if(_0x9d59x1b[_0x109a[105]][_0x109a[104]](_0x9d59x25[_0x109a[40]])){_0x9d59x23[_0x109a[107]](util[_0x109a[45]](_0x109a[106],_0x9d59x25[_0x109a[40]],_0x9d59x1b[_0x109a[105]][_0x9d59x25[_0x109a[40]]]))}});if(_0x9d59x23[_0x109a[37]]){_0x9d59x23= _0x9d59x23[_0x109a[39]](_0x109a[38]);return sequelize[_0x109a[48]](util[_0x109a[45]](_0x109a[108],_0x9d59x23,_0x9d59x2d[_0x109a[43]]))}}})[_0x109a[34]](function(){return _0x9d59x2d})}}exports[_0x109a[126]]= function(_0x9d59x1b,_0x9d59x1c){return Contact[_0x109a[64]](_0x9d59x1b[_0x109a[94]][_0x109a[43]])[_0x109a[34]](function(_0x9d59x32){if(!_0x9d59x32){return _0x9d59x1c[_0x109a[77]](404)};return _0x9d59x32[_0x109a[126]]()})[_0x109a[34]](function(){return _0x9d59x1c[_0x109a[77]](204)})[_0x109a[31]](function(_0x9d59x1f){return handleError(_0x9d59x1c,_0x9d59x1f)})};exports[_0x109a[128]]= function(_0x9d59x1b,_0x9d59x1c){return Contact[_0x109a[126]]({where:{id:_0x9d59x1b[_0x109a[48]][_0x109a[129]]},individualHooks:true})[_0x109a[34]](function(){return _0x9d59x1c[_0x109a[77]](204)})[_0x109a[31]](function(_0x9d59x1f){return handleError(_0x9d59x1c,_0x9d59x1f)})};function handleError(_0x9d59x1c,_0x9d59x1f){return _0x9d59x1c[_0x109a[33]](500)[_0x109a[32]](_0x9d59x1f)}
\ No newline at end of file