Built motion from commit 25580385.|2.6.2
[motion2.git] / server / api / integration / integration.controller.js
index 37581a8..a87c42b 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x89d6=['desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','save','update','then','destroy','error','stack','name','send','map','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','Integration','findAll','catch','show','params','rawAttributes','create','body','find','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce'];(function(_0x29d94e,_0xf386d6){var _0x106237=function(_0x327501){while(--_0x327501){_0x29d94e['push'](_0x29d94e['shift']());}};_0x106237(++_0xf386d6);}(_0x89d6,0x119));var _0x689d=function(_0x26047b,_0x27fa7d){_0x26047b=_0x26047b-0x0;var _0x40f4fa=_0x89d6[_0x26047b];return _0x40f4fa;};'use strict';var emlformat=require(_0x689d('0x0'));var rimraf=require(_0x689d('0x1'));var zipdir=require(_0x689d('0x2'));var jsonpatch=require(_0x689d('0x3'));var rp=require('request-promise');var moment=require(_0x689d('0x4'));var BPromise=require(_0x689d('0x5'));var Mustache=require(_0x689d('0x6'));var util=require('util');var path=require(_0x689d('0x7'));var sox=require(_0x689d('0x8'));var csv=require(_0x689d('0x9'));var ejs=require(_0x689d('0xa'));var fs=require('fs');var fs_extra=require(_0x689d('0xb'));var _=require(_0x689d('0xc'));var squel=require('squel');var crypto=require(_0x689d('0xd'));var jsforce=require(_0x689d('0xe'));var deskjs=require(_0x689d('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x689d('0x10'));var Redis=require(_0x689d('0x11'));var authService=require(_0x689d('0x12'));var qs=require(_0x689d('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x689d('0x14'))(_0x689d('0x15'));var utils=require(_0x689d('0x16'));var config=require(_0x689d('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x689d('0x18'))['db'];function respondWithStatusCode(_0x1e5c7a,_0x4a3284){_0x4a3284=_0x4a3284||0xcc;return function(_0x2f0f8){if(_0x2f0f8){return _0x1e5c7a[_0x689d('0x19')](_0x4a3284);}return _0x1e5c7a[_0x689d('0x1a')](_0x4a3284)[_0x689d('0x1b')]();};}function respondWithResult(_0x43a52a,_0x5143c6){_0x5143c6=_0x5143c6||0xc8;return function(_0x222734){if(_0x222734){return _0x43a52a[_0x689d('0x1a')](_0x5143c6)['json'](_0x222734);}};}function respondWithFilteredResult(_0x5f4920,_0x12d6ff){return function(_0x2a09e5){if(_0x2a09e5){var _0x3beb4a=_0x2a09e5[_0x689d('0x1c')],_0x2060d7=_0x12d6ff[_0x689d('0x1d')],_0x8c5586=_0x12d6ff['offset']+_0x12d6ff[_0x689d('0x1e')],_0x561301;if(_0x8c5586>=_0x3beb4a){_0x8c5586=_0x3beb4a;_0x561301=0xc8;}else{_0x561301=0xce;}_0x5f4920['status'](_0x561301);return _0x5f4920[_0x689d('0x1f')](_0x689d('0x20'),_0x2060d7+'-'+_0x8c5586+'/'+_0x3beb4a)[_0x689d('0x21')](_0x2a09e5);}return null;};}function patchUpdates(_0x16d965){return function(_0x34e2ae){try{jsonpatch[_0x689d('0x22')](_0x34e2ae,_0x16d965,!![]);}catch(_0x215965){return BPromise['reject'](_0x215965);}return _0x34e2ae[_0x689d('0x23')]();};}function saveUpdates(_0x56a952,_0x17fe6c){return function(_0x5bf394){if(_0x5bf394){return _0x5bf394[_0x689d('0x24')](_0x56a952)[_0x689d('0x25')](function(_0x4469e4){return _0x4469e4;});}return null;};}function removeEntity(_0x55ebc6,_0x1740b3){return function(_0x490980){if(_0x490980){return _0x490980[_0x689d('0x26')]()[_0x689d('0x25')](function(){_0x55ebc6[_0x689d('0x1a')](0xcc)[_0x689d('0x1b')]();});}};}function handleEntityNotFound(_0x2d2f99,_0x4aea99){return function(_0x34b042){if(!_0x34b042){_0x2d2f99[_0x689d('0x19')](0x194);}return _0x34b042;};}function handleError(_0x31140d,_0x4bd129){_0x4bd129=_0x4bd129||0x1f4;return function(_0x2c6428){logger[_0x689d('0x27')](_0x2c6428[_0x689d('0x28')]);if(_0x2c6428[_0x689d('0x29')]){delete _0x2c6428[_0x689d('0x29')];}_0x31140d['status'](_0x4bd129)[_0x689d('0x2a')](_0x2c6428);};}exports['index']=function(_0x22f0fc,_0x28de98){var _0x2df635={},_0x35651f={},_0x1e6619={'count':0x0,'rows':[]};var _0x47b324=_[_0x689d('0x2b')](db['Integration']['rawAttributes'],function(_0x4a976a){return{'name':_0x4a976a[_0x689d('0x2c')],'type':_0x4a976a[_0x689d('0x2d')][_0x689d('0x2e')]};});_0x35651f[_0x689d('0x2f')]=_['map'](_0x47b324,'name');_0x35651f['query']=_[_0x689d('0x30')](_0x22f0fc[_0x689d('0x31')]);_0x35651f[_0x689d('0x32')]=_[_0x689d('0x33')](_0x35651f[_0x689d('0x2f')],_0x35651f[_0x689d('0x31')]);_0x2df635[_0x689d('0x34')]=_['intersection'](_0x35651f[_0x689d('0x2f')],qs[_0x689d('0x35')](_0x22f0fc['query'][_0x689d('0x35')]));_0x2df635[_0x689d('0x34')]=_0x2df635['attributes'][_0x689d('0x36')]?_0x2df635[_0x689d('0x34')]:_0x35651f[_0x689d('0x2f')];if(!_0x22f0fc[_0x689d('0x31')][_0x689d('0x37')](_0x689d('0x38'))){_0x2df635[_0x689d('0x1e')]=qs[_0x689d('0x1e')](_0x22f0fc[_0x689d('0x31')][_0x689d('0x1e')]);_0x2df635[_0x689d('0x1d')]=qs[_0x689d('0x1d')](_0x22f0fc[_0x689d('0x31')][_0x689d('0x1d')]);}_0x2df635[_0x689d('0x39')]=qs['sort'](_0x22f0fc[_0x689d('0x31')][_0x689d('0x3a')]);_0x2df635[_0x689d('0x3b')]=qs[_0x689d('0x32')](_[_0x689d('0x3c')](_0x22f0fc['query'],_0x35651f[_0x689d('0x32')]),_0x47b324);if(_0x22f0fc[_0x689d('0x31')][_0x689d('0x3d')]){_0x2df635[_0x689d('0x3b')]=_[_0x689d('0x3e')](_0x2df635['where'],{'$or':_['map'](_0x47b324,function(_0x6dab0a){if(_0x6dab0a[_0x689d('0x2d')]!==_0x689d('0x3f')){var _0x486199={};_0x486199[_0x6dab0a['name']]={'$like':'%'+_0x22f0fc['query'][_0x689d('0x3d')]+'%'};return _0x486199;}})});}_0x2df635=_['merge']({},_0x2df635,_0x22f0fc[_0x689d('0x40')]);var _0x39ad63={'where':_0x2df635[_0x689d('0x3b')]};return db[_0x689d('0x41')]['count'](_0x39ad63)[_0x689d('0x25')](function(_0x434a60){_0x1e6619['count']=_0x434a60;if(_0x22f0fc['query']['includeAll']){_0x2df635['include']=[{'all':!![]}];}return db['Integration'][_0x689d('0x42')](_0x2df635);})[_0x689d('0x25')](function(_0x54260e){_0x1e6619['rows']=_0x54260e;return _0x1e6619;})[_0x689d('0x25')](respondWithFilteredResult(_0x28de98,_0x2df635))[_0x689d('0x43')](handleError(_0x28de98,null));};exports[_0x689d('0x44')]=function(_0x499456,_0x5e4a53){var _0x53a3f1={'raw':![],'where':{'id':_0x499456[_0x689d('0x45')]['id']}},_0x41d8e4={};_0x41d8e4[_0x689d('0x2f')]=_['keys'](db[_0x689d('0x41')][_0x689d('0x46')]);_0x41d8e4[_0x689d('0x31')]=_[_0x689d('0x30')](_0x499456['query']);_0x41d8e4[_0x689d('0x32')]=_[_0x689d('0x33')](_0x41d8e4[_0x689d('0x2f')],_0x41d8e4[_0x689d('0x31')]);_0x53a3f1[_0x689d('0x34')]=_[_0x689d('0x33')](_0x41d8e4[_0x689d('0x2f')],qs[_0x689d('0x35')](_0x499456[_0x689d('0x31')][_0x689d('0x35')]));_0x53a3f1[_0x689d('0x34')]=_0x53a3f1['attributes'][_0x689d('0x36')]?_0x53a3f1[_0x689d('0x34')]:_0x41d8e4[_0x689d('0x2f')];if(_0x499456[_0x689d('0x31')]['includeAll']){_0x53a3f1['include']=[{'all':!![]}];}_0x53a3f1=_[_0x689d('0x3e')]({},_0x53a3f1,_0x499456[_0x689d('0x40')]);return db[_0x689d('0x41')]['find'](_0x53a3f1)['then'](handleEntityNotFound(_0x5e4a53,null))[_0x689d('0x25')](respondWithResult(_0x5e4a53,null))[_0x689d('0x43')](handleError(_0x5e4a53,null));};exports['create']=function(_0x24822c,_0x2eadde){return db[_0x689d('0x41')][_0x689d('0x47')](_0x24822c[_0x689d('0x48')],{})[_0x689d('0x25')](respondWithResult(_0x2eadde,0xc9))[_0x689d('0x43')](handleError(_0x2eadde,null));};exports[_0x689d('0x24')]=function(_0x3dfa85,_0xdcf0eb){if(_0x3dfa85[_0x689d('0x48')]['id']){delete _0x3dfa85[_0x689d('0x48')]['id'];}return db['Integration']['find']({'where':{'id':_0x3dfa85[_0x689d('0x45')]['id']}})['then'](handleEntityNotFound(_0xdcf0eb,null))[_0x689d('0x25')](saveUpdates(_0x3dfa85[_0x689d('0x48')],null))[_0x689d('0x25')](respondWithResult(_0xdcf0eb,null))['catch'](handleError(_0xdcf0eb,null));};exports['destroy']=function(_0x25b8a7,_0x50cdd9){return db[_0x689d('0x41')][_0x689d('0x49')]({'where':{'id':_0x25b8a7[_0x689d('0x45')]['id']}})['then'](handleEntityNotFound(_0x50cdd9,null))[_0x689d('0x25')](removeEntity(_0x50cdd9,null))[_0x689d('0x43')](handleError(_0x50cdd9,null));};
\ No newline at end of file
+var _0xfdbd=['findAll','rows','show','length','find','catch','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','reject','save','update','destroy','then','error','stack','name','send','index','map','Integration','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include'];(function(_0x1ee7e3,_0x10dca1){var _0x246ce6=function(_0x4629b9){while(--_0x4629b9){_0x1ee7e3['push'](_0x1ee7e3['shift']());}};_0x246ce6(++_0x10dca1);}(_0xfdbd,0xf0));var _0xdfdb=function(_0x292f93,_0x2c6e8e){_0x292f93=_0x292f93-0x0;var _0x5a94b1=_0xfdbd[_0x292f93];return _0x5a94b1;};'use strict';var emlformat=require(_0xdfdb('0x0'));var rimraf=require(_0xdfdb('0x1'));var zipdir=require(_0xdfdb('0x2'));var jsonpatch=require(_0xdfdb('0x3'));var rp=require(_0xdfdb('0x4'));var moment=require(_0xdfdb('0x5'));var BPromise=require(_0xdfdb('0x6'));var Mustache=require(_0xdfdb('0x7'));var util=require(_0xdfdb('0x8'));var path=require('path');var sox=require(_0xdfdb('0x9'));var csv=require('to-csv');var ejs=require(_0xdfdb('0xa'));var fs=require('fs');var fs_extra=require(_0xdfdb('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xdfdb('0xc'));var deskjs=require(_0xdfdb('0xd'));var toCsv=require('to-csv');var querystring=require(_0xdfdb('0xe'));var Papa=require(_0xdfdb('0xf'));var Redis=require(_0xdfdb('0x10'));var authService=require(_0xdfdb('0x11'));var qs=require(_0xdfdb('0x12'));var as=require(_0xdfdb('0x13'));var hardwareService=require(_0xdfdb('0x14'));var logger=require('../../config/logger')(_0xdfdb('0x15'));var utils=require(_0xdfdb('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xdfdb('0x17'));var db=require(_0xdfdb('0x18'))['db'];function respondWithStatusCode(_0x2bee3b,_0x1918c1){_0x1918c1=_0x1918c1||0xcc;return function(_0x2a95f1){if(_0x2a95f1){return _0x2bee3b[_0xdfdb('0x19')](_0x1918c1);}return _0x2bee3b[_0xdfdb('0x1a')](_0x1918c1)[_0xdfdb('0x1b')]();};}function respondWithResult(_0x51162f,_0x48a66a){_0x48a66a=_0x48a66a||0xc8;return function(_0x2c44dc){if(_0x2c44dc){return _0x51162f['status'](_0x48a66a)[_0xdfdb('0x1c')](_0x2c44dc);}};}function respondWithFilteredResult(_0x9f3039,_0x11a56a){return function(_0x40bc8a){if(_0x40bc8a){var _0x3bfd81=typeof _0x11a56a[_0xdfdb('0x1d')]==='undefined'&&typeof _0x11a56a['limit']===_0xdfdb('0x1e');var _0x8b9193=_0x40bc8a[_0xdfdb('0x1f')];var _0x55ab5a=_0x3bfd81?0x0:_0x11a56a[_0xdfdb('0x1d')];var _0xb677b1=_0x3bfd81?_0x40bc8a[_0xdfdb('0x1f')]:_0x11a56a[_0xdfdb('0x1d')]+_0x11a56a[_0xdfdb('0x20')];var _0x2294de;if(_0xb677b1>=_0x8b9193){_0xb677b1=_0x8b9193;_0x2294de=0xc8;}else{_0x2294de=0xce;}_0x9f3039[_0xdfdb('0x1a')](_0x2294de);return _0x9f3039[_0xdfdb('0x21')]('Content-Range',_0x55ab5a+'-'+_0xb677b1+'/'+_0x8b9193)[_0xdfdb('0x1c')](_0x40bc8a);}return null;};}function patchUpdates(_0xb7417c){return function(_0x172c63){try{jsonpatch['apply'](_0x172c63,_0xb7417c,!![]);}catch(_0x377112){return BPromise[_0xdfdb('0x22')](_0x377112);}return _0x172c63[_0xdfdb('0x23')]();};}function saveUpdates(_0x4d55e5,_0x280e53){return function(_0x789bd2){if(_0x789bd2){return _0x789bd2[_0xdfdb('0x24')](_0x4d55e5)['then'](function(_0x2a80c1){return _0x2a80c1;});}return null;};}function removeEntity(_0x526057,_0x2db1c1){return function(_0x145350){if(_0x145350){return _0x145350[_0xdfdb('0x25')]()[_0xdfdb('0x26')](function(){_0x526057['status'](0xcc)[_0xdfdb('0x1b')]();});}};}function handleEntityNotFound(_0x4363d8,_0x956843){return function(_0x400663){if(!_0x400663){_0x4363d8[_0xdfdb('0x19')](0x194);}return _0x400663;};}function handleError(_0x305954,_0x57d24f){_0x57d24f=_0x57d24f||0x1f4;return function(_0xec4d22){logger[_0xdfdb('0x27')](_0xec4d22[_0xdfdb('0x28')]);if(_0xec4d22['name']){delete _0xec4d22[_0xdfdb('0x29')];}_0x305954['status'](_0x57d24f)[_0xdfdb('0x2a')](_0xec4d22);};}exports[_0xdfdb('0x2b')]=function(_0x19c36f,_0x513fa0){var _0x5bc174={},_0x1c8ca8={},_0xc56435={'count':0x0,'rows':[]};var _0xedbb91=_[_0xdfdb('0x2c')](db[_0xdfdb('0x2d')][_0xdfdb('0x2e')],function(_0x5a9fc4){return{'name':_0x5a9fc4[_0xdfdb('0x2f')],'type':_0x5a9fc4[_0xdfdb('0x30')][_0xdfdb('0x31')]};});_0x1c8ca8[_0xdfdb('0x32')]=_[_0xdfdb('0x2c')](_0xedbb91,_0xdfdb('0x29'));_0x1c8ca8[_0xdfdb('0x33')]=_[_0xdfdb('0x34')](_0x19c36f[_0xdfdb('0x33')]);_0x1c8ca8[_0xdfdb('0x35')]=_[_0xdfdb('0x36')](_0x1c8ca8['model'],_0x1c8ca8['query']);_0x5bc174[_0xdfdb('0x37')]=_['intersection'](_0x1c8ca8[_0xdfdb('0x32')],qs[_0xdfdb('0x38')](_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x38')]));_0x5bc174['attributes']=_0x5bc174[_0xdfdb('0x37')]['length']?_0x5bc174[_0xdfdb('0x37')]:_0x1c8ca8[_0xdfdb('0x32')];if(!_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x39')](_0xdfdb('0x3a'))){_0x5bc174[_0xdfdb('0x20')]=qs['limit'](_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x20')]);_0x5bc174['offset']=qs[_0xdfdb('0x1d')](_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x1d')]);}_0x5bc174[_0xdfdb('0x3b')]=qs[_0xdfdb('0x3c')](_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x3c')]);_0x5bc174[_0xdfdb('0x3d')]=qs[_0xdfdb('0x35')](_[_0xdfdb('0x3e')](_0x19c36f[_0xdfdb('0x33')],_0x1c8ca8['filters']),_0xedbb91);if(_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x3f')]){_0x5bc174[_0xdfdb('0x3d')]=_[_0xdfdb('0x40')](_0x5bc174[_0xdfdb('0x3d')],{'$or':_[_0xdfdb('0x2c')](_0xedbb91,function(_0x3ec73a){if(_0x3ec73a[_0xdfdb('0x30')]!=='VIRTUAL'){var _0x55d707={};_0x55d707[_0x3ec73a[_0xdfdb('0x29')]]={'$like':'%'+_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x3f')]+'%'};return _0x55d707;}})});}_0x5bc174=_[_0xdfdb('0x40')]({},_0x5bc174,_0x19c36f[_0xdfdb('0x41')]);var _0x300884={'where':_0x5bc174[_0xdfdb('0x3d')]};return db[_0xdfdb('0x2d')][_0xdfdb('0x1f')](_0x300884)['then'](function(_0x175f57){_0xc56435[_0xdfdb('0x1f')]=_0x175f57;if(_0x19c36f[_0xdfdb('0x33')][_0xdfdb('0x42')]){_0x5bc174[_0xdfdb('0x43')]=[{'all':!![]}];}return db['Integration'][_0xdfdb('0x44')](_0x5bc174);})[_0xdfdb('0x26')](function(_0x3e9f88){_0xc56435[_0xdfdb('0x45')]=_0x3e9f88;return _0xc56435;})[_0xdfdb('0x26')](respondWithFilteredResult(_0x513fa0,_0x5bc174))['catch'](handleError(_0x513fa0,null));};exports[_0xdfdb('0x46')]=function(_0xd2f8bd,_0xf0482a){var _0x5b4381={'raw':![],'where':{'id':_0xd2f8bd['params']['id']}},_0x2b5139={};_0x2b5139[_0xdfdb('0x32')]=_['keys'](db[_0xdfdb('0x2d')][_0xdfdb('0x2e')]);_0x2b5139['query']=_[_0xdfdb('0x34')](_0xd2f8bd['query']);_0x2b5139[_0xdfdb('0x35')]=_[_0xdfdb('0x36')](_0x2b5139[_0xdfdb('0x32')],_0x2b5139[_0xdfdb('0x33')]);_0x5b4381[_0xdfdb('0x37')]=_['intersection'](_0x2b5139['model'],qs[_0xdfdb('0x38')](_0xd2f8bd[_0xdfdb('0x33')]['fields']));_0x5b4381[_0xdfdb('0x37')]=_0x5b4381['attributes'][_0xdfdb('0x47')]?_0x5b4381[_0xdfdb('0x37')]:_0x2b5139[_0xdfdb('0x32')];if(_0xd2f8bd[_0xdfdb('0x33')][_0xdfdb('0x42')]){_0x5b4381[_0xdfdb('0x43')]=[{'all':!![]}];}_0x5b4381=_[_0xdfdb('0x40')]({},_0x5b4381,_0xd2f8bd[_0xdfdb('0x41')]);return db[_0xdfdb('0x2d')][_0xdfdb('0x48')](_0x5b4381)[_0xdfdb('0x26')](handleEntityNotFound(_0xf0482a,null))[_0xdfdb('0x26')](respondWithResult(_0xf0482a,null))[_0xdfdb('0x49')](handleError(_0xf0482a,null));};exports[_0xdfdb('0x4a')]=function(_0x1c08fb,_0x273477){return db['Integration']['create'](_0x1c08fb[_0xdfdb('0x4b')],{})[_0xdfdb('0x26')](respondWithResult(_0x273477,0xc9))[_0xdfdb('0x49')](handleError(_0x273477,null));};exports['update']=function(_0x36149e,_0x4d4c90){if(_0x36149e[_0xdfdb('0x4b')]['id']){delete _0x36149e[_0xdfdb('0x4b')]['id'];}return db['Integration'][_0xdfdb('0x48')]({'where':{'id':_0x36149e[_0xdfdb('0x4c')]['id']}})['then'](handleEntityNotFound(_0x4d4c90,null))[_0xdfdb('0x26')](saveUpdates(_0x36149e[_0xdfdb('0x4b')],null))[_0xdfdb('0x26')](respondWithResult(_0x4d4c90,null))[_0xdfdb('0x49')](handleError(_0x4d4c90,null));};exports[_0xdfdb('0x25')]=function(_0x10b490,_0x17dfdb){return db[_0xdfdb('0x2d')][_0xdfdb('0x48')]({'where':{'id':_0x10b490['params']['id']}})[_0xdfdb('0x26')](handleEntityNotFound(_0x17dfdb,null))['then'](removeEntity(_0x17dfdb,null))[_0xdfdb('0x49')](handleError(_0x17dfdb,null));};
\ No newline at end of file