Built motion from commit c2984ba.|0.0.114
[motion.git] / server / config / triggers / index.js
index fbb9c9f..544cdbc 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 _0xf4e7=["\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\x2F\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79","\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","\x54\x6F\x6F\x6C\x73\x41\x63\x74\x69\x6F\x6E","\x54\x6F\x6F\x6C\x73\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\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","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x63\x68\x61\x6E\x67\x65\x64","\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","\x61\x6C\x6C","\x73\x63\x6F\x70\x65","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x61\x63\x74\x69\x6F\x6E\x20\x22","\x61\x63\x74\x69\x6F\x6E","\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","\x73\x65\x6E\x64\x52\x65\x71\x75\x65\x73\x74","\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64","\x64\x61\x74\x61\x31","\x6D\x61\x6E\x61\x67\x65\x4A\x73\x63\x72\x69\x70\x74\x79","\x6A\x73\x63\x72\x69\x70\x74\x79","\x73\x65\x6E\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x74\x65\x6D\x70\x6C\x61\x74\x65","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x6D\x61\x6E\x61\x67\x65\x45\x76\x65\x6E\x74","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x54\x72\x69\x67\x67\x65\x72\x3A\x20\x41\x63\x74\x69\x6F\x6E\x20\x6E\x6F\x74\x20\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x64\x20","\x66\x6F\x72\x45\x61\x63\x68","\x69\x64","\x6E\x65\x77\x54\x72\x69\x67\x67\x65\x72","\x70\x75\x73\x68","\x72\x65\x6D\x6F\x76\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x77\x68\x65\x72\x65","\x66\x69\x6E\x64","\x41\x63\x74\x69\x6F\x6E\x73","\x61\x66\x74\x65\x72\x42\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x42\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x54\x72\x69\x67\x67\x65\x72\x41\x6C\x6C\x49\x64","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x41\x6C\x6C","\x54\x72\x69\x67\x67\x65\x72\x41\x6E\x79\x49\x64","\x41\x6E\x79","\x69\x6E\x64\x65\x78\x4F\x66","\x6D\x65\x72\x67\x65","\x75\x6E\x73\x68\x69\x66\x74"];_0xf4e7[0];var _=require(_0xf4e7[1]);var Util=require(_0xf4e7[2]);var Voice=require(_0xf4e7[3]);var Mail=require(_0xf4e7[4]);var Chat=require(_0xf4e7[5]);var Cm=require(_0xf4e7[6]);var UrlForward=require(_0xf4e7[7]);var Jscripty=require(_0xf4e7[8]);var Integration=require(_0xf4e7[9]);var Trigger=require(_0xf4e7[11])[_0xf4e7[10]];var ToolsAction=require(_0xf4e7[11])[_0xf4e7[12]];var ToolsCondition=require(_0xf4e7[11])[_0xf4e7[13]];var ReportAgent=require(_0xf4e7[11])[_0xf4e7[14]];var MailMessage=require(_0xf4e7[11])[_0xf4e7[15]];module[_0xf4e7[16]]= function(_0x5f95xf){var _0x5f95x10= new Util();var _0x5f95x11= new Voice();var _0x5f95x12= new Chat();var _0x5f95x13= new Mail();var _0x5f95x14= new Cm();var _0x5f95x15= new Jscripty();var _0x5f95x16= new Integration(_0x5f95xf);var _0x5f95x17= new UrlForward();Trigger[_0xf4e7[37]](_0xf4e7[36])[_0xf4e7[35]]()[_0xf4e7[34]](function(_0x5f95x19){synchTriggers(_0x5f95x19);console[_0xf4e7[21]](_0xf4e7[19],_0x5f95x19[_0xf4e7[20]]);ReportAgent[_0xf4e7[26]](function(_0x5f95x1a){var _0x5f95x1b=_0x5f95x10[_0xf4e7[24]](_0x5f95x1a,_[_0xf4e7[23]](_0x5f95x19,{channel:_0xf4e7[22]}));console[_0xf4e7[21]](_0xf4e7[25],_0x5f95x1b[_0xf4e7[20]]);execActions(_0x5f95x1b,_0x5f95x1a,_0xf4e7[22],_0x5f95x10,_0x5f95x11,_0x5f95x13,_0x5f95x14,_0x5f95x15,_0x5f95x16,_0x5f95x17)});ReportAgent[_0xf4e7[30]](function(_0x5f95x1a){if(_0x5f95x1a[_0xf4e7[28]](_0xf4e7[27])){var _0x5f95x1b=_0x5f95x10[_0xf4e7[24]](_0x5f95x1a,_[_0xf4e7[23]](_0x5f95x19,{channel:_0xf4e7[22]}));console[_0xf4e7[21]](_0xf4e7[29],_0x5f95x1b[_0xf4e7[20]]);execActions(_0x5f95x1b,_0x5f95x1a,_0xf4e7[22],_0x5f95x10,_0x5f95x11,_0x5f95x13,_0x5f95x14,_0x5f95x15,_0x5f95x16,_0x5f95x17)}});MailMessage[_0xf4e7[26]](function(_0x5f95x1a){if(_0x5f95x1a[_0xf4e7[31]]=== _0xf4e7[32]){var _0x5f95x1b=_0x5f95x10[_0xf4e7[24]](_0x5f95x1a,_[_0xf4e7[23]](_0x5f95x19,{channel:_0xf4e7[33]}));execActions(_0x5f95x1b,_0x5f95x1a,_0xf4e7[33],_0x5f95x10,_0x5f95x11,_0x5f95x13,_0x5f95x14,_0x5f95x15,_0x5f95x16,_0x5f95x17)}})})[_0xf4e7[18]](function(_0x5f95x18){console[_0xf4e7[17]](_0x5f95x18)})};function execActions(_0x5f95x1b,_0x5f95x1a,_0x5f95x1d,_0x5f95x10,_0x5f95x11,_0x5f95x13,_0x5f95x14,_0x5f95x15,_0x5f95x16,_0x5f95x17){_0x5f95x1b[_0xf4e7[55]](function(_0x5f95x1e){console[_0xf4e7[21]](_0xf4e7[38]+ _0x5f95x1e[_0xf4e7[39]]+ _0xf4e7[40]);switch(_0x5f95x1e[_0xf4e7[39]]){case _0xf4e7[43]:_0x5f95x14[_0xf4e7[42]](_0x5f95x1a[_0xf4e7[41]],_0x5f95x1d);break;case _0xf4e7[45]:_0x5f95x17[_0xf4e7[44]](_0x5f95x1a[_0xf4e7[41]],_0x5f95x1d,_0x5f95x1e);break;case _0xf4e7[48]:_0x5f95x15[_0xf4e7[47]](_0x5f95x1e[_0xf4e7[46]],_0x5f95x1a[_0xf4e7[41]],_0x5f95x1d);break;case _0xf4e7[50]:_0x5f95x13[_0xf4e7[49]](_0x5f95x1e);break;case _0xf4e7[51]:;case _0xf4e7[53]:_0x5f95x16[_0xf4e7[52]](_0x5f95x1e,_0x5f95x1a,_0x5f95x1d);break;default:console[_0xf4e7[21]](_0xf4e7[54],_0x5f95x1e[_0xf4e7[39]])}})}function synchTriggers(_0x5f95x19){Trigger[_0xf4e7[26]](function(_0x5f95x1a,_0x5f95x20){_0x5f95x20[_0xf4e7[57]][_0xf4e7[56]]= _0x5f95x1a[_0xf4e7[56]];_0x5f95x19[_0xf4e7[58]](_0x5f95x20[_0xf4e7[57]])});Trigger[_0xf4e7[30]](function(_0x5f95x1a,_0x5f95x20){updateCollection(_0x5f95x19,_0x5f95x1a)});Trigger[_0xf4e7[60]](function(_0x5f95x1a){_[_0xf4e7[59]](_0x5f95x19,{id:_0x5f95x1a[_0xf4e7[56]]})});ToolsAction[_0xf4e7[64]](function(_0x5f95x1a){var _0x5f95x21=parseInt(_0x5f95x1a[_0xf4e7[61]].TriggerId);var _0x5f95x22=_[_0xf4e7[62]](_0x5f95x19,function(_0x5f95x23){return _0x5f95x23[_0xf4e7[56]]=== _0x5f95x21});if(_0x5f95x22){_0x5f95x22[_0xf4e7[63]]= []}});ToolsAction[_0xf4e7[65]](function(_0x5f95x1a){_[_0xf4e7[55]](_0x5f95x1a,function(_0x5f95x1e){var _0x5f95x22=_[_0xf4e7[62]](_0x5f95x19,function(_0x5f95x23){return _0x5f95x23[_0xf4e7[56]]=== parseInt(_0x5f95x1e.TriggerId)});if(_0x5f95x22){_0x5f95x22[_0xf4e7[63]][_0xf4e7[58]](_0x5f95x1e)}})});ToolsCondition[_0xf4e7[64]](function(_0x5f95x1a){if(_0x5f95x1a[_0xf4e7[61]][_0xf4e7[67]](_0xf4e7[66])){var _0x5f95x24=parseInt(_0x5f95x1a[_0xf4e7[61]].TriggerAllId);var _0x5f95x25=_[_0xf4e7[62]](_0x5f95x19,function(_0x5f95x23){return _0x5f95x23[_0xf4e7[56]]=== _0x5f95x24});if(_0x5f95x25){_0x5f95x25[_0xf4e7[68]]= []}}else {if(_0x5f95x1a[_0xf4e7[61]][_0xf4e7[67]](_0xf4e7[69])){var _0x5f95x26=parseInt(_0x5f95x1a[_0xf4e7[61]].TriggerAnyId);var _0x5f95x27=_[_0xf4e7[62]](_0x5f95x19,function(_0x5f95x23){return _0x5f95x23[_0xf4e7[56]]=== _0x5f95x26});if(_0x5f95x27){_0x5f95x27[_0xf4e7[70]]= []}}}});ToolsCondition[_0xf4e7[65]](function(_0x5f95x1a){_[_0xf4e7[55]](_0x5f95x1a,function(_0x5f95x28){if(_0x5f95x28[_0xf4e7[41]][_0xf4e7[67]](_0xf4e7[66])){var _0x5f95x24=parseInt(_0x5f95x28[_0xf4e7[41]].TriggerAllId);var _0x5f95x25=_[_0xf4e7[62]](_0x5f95x19,function(_0x5f95x23){return _0x5f95x23[_0xf4e7[56]]=== _0x5f95x24});if(_0x5f95x25){_0x5f95x25[_0xf4e7[68]][_0xf4e7[58]](_0x5f95x28)}}else {if(_0x5f95x28[_0xf4e7[41]][_0xf4e7[67]](_0xf4e7[69])){var _0x5f95x26=parseInt(_0x5f95x28[_0xf4e7[41]].TriggerAnyId);var _0x5f95x27=_[_0xf4e7[62]](_0x5f95x19,function(_0x5f95x23){return _0x5f95x23[_0xf4e7[56]]=== _0x5f95x26});if(_0x5f95x27){_0x5f95x27[_0xf4e7[70]][_0xf4e7[58]](_0x5f95x28)}}}})})}function updateCollection(_0x5f95x2a,_0x5f95x1a){var _0x5f95x2b=_[_0xf4e7[62]](_0x5f95x2a,{id:_0x5f95x1a[_0xf4e7[56]]});var _0x5f95x2c=_0x5f95x2a[_0xf4e7[71]](_0x5f95x2b);if(_0x5f95x2b){_0x5f95x2a[_0x5f95x2c]= _[_0xf4e7[72]](_0x5f95x2a[_0x5f95x2c],_0x5f95x1a)}else {_0x5f95x2a[_0xf4e7[73]](_0x5f95x1a)}}
\ No newline at end of file