UNPKG

@eflexsystems/node-open-protocol

Version:

A library to interface with Power Tools using the Atlas Copco Open Protocol

249 lines (177 loc) 206 kB
//@ts-check /* Copyright: (c) 2018-2020, Smart-Tech Controle e Automação GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) */ const { expect } = require('chai'); const LinkLayer = require("../src/linkLayer.js"); const Duplex = require('stream').Duplex; function createStreamHelper(cbWrite) { let stream = new Duplex({ read(size) { }, write(chunk, encoding, cb) { cbWrite(chunk); cb(); } }); return stream; } function destroyStream(stream) { // handles Node versions older than 8.x if (typeof stream.destroy === 'function') { stream.destroy(); } else { stream._destroy(); } } describe("LINK LAYER", () => { it("Should do Basic communication with Link Layer active", (done) => { let step = 0; let stream = createStreamHelper((data) => { switch (step) { case 0: //send 9997 stream.push(Buffer.from("00249997001 02 0001\u0000")); stream.push(Buffer.from("00570002001 01 010001020103Teste Airbag \u0000")); step += 1; break; case 1: stream.push(Buffer.from("00240038002 02 8787\u0000")); step += 1; break; } }); let linkLayer = new LinkLayer({ stream: stream }); linkLayer.on("data", data => { if (data.mid === 38) { destroyStream(linkLayer); done(); } }); linkLayer.on("error", err => {}); let mid = { mid: 1 }; linkLayer.activateLinkLayer(); linkLayer.write(mid); }); it("Should test resend message for timeout", (done) => { let step = 0; let receiver = []; let stream = createStreamHelper((data) => { //console.log("Received", data.toString("ascii")); receiver.push(data); }); let linkLayer = new LinkLayer({ stream: stream, timeOut: 200 }); linkLayer.on("data", data => {}); linkLayer.on("error", err => { expect(receiver).to.have.lengthOf(4); expect(err).to.be.an("error"); destroyStream(linkLayer); done(); }); linkLayer.activateLinkLayer(); linkLayer.write({ mid: 5, payload: { midNumber: 8787 } }); }); it("Should return throw, because Link Layer instance without stream", (done) => { expect(() => new LinkLayer()).to.throw(); done(); }); it("Should receiver message with multi parts", (done) => { let receiver = []; let obj = { mid: 2, revision: 1, noAck: false, stationID: 1, spindleID: 1, sequenceNumber: 0, messageParts: 3, messageNumber: 3, payload: { cellID: 5656, channelID: 98, controllerName: 'Teste Diego - Airbag' } }; let stream = createStreamHelper((data) => {}); let linkLayer = new LinkLayer({ stream: stream }); linkLayer.on("data", data => { expect(obj).to.be.deep.equal(data); destroyStream(linkLayer); done(); }); linkLayer.on("error", err => {}); stream.push(Buffer.from("00260002001 31015656\u0000")); stream.push(Buffer.from("00240002001 320298\u0000")); stream.push(Buffer.from("00470002001 3303Teste Diego - Airbag \u0000")); }); it("Should return error message multi parts with error in message number", (done) => { let stream = createStreamHelper((data) => {}); let linkLayer = new LinkLayer({ stream: stream }); linkLayer.on("data", data => {}); linkLayer.on("error", err => { expect(err).to.be.an('error'); destroyStream(linkLayer); done(); }); stream.push(Buffer.from("00300002001 310156560298\u0000")); stream.push(Buffer.from("00470002001 3303Teste Diego - Airbag \u0000")); }); it("Should return error on check of link layer", (done) => { let step = 0; let stream = createStreamHelper((data) => { switch (step) { case 0: //send 9997 stream.push(Buffer.from("00289998001 02 00010001\u0000")); step += 1; break; } }); let linkLayer = new LinkLayer({ stream: stream }); linkLayer.on("data", data => {}); linkLayer.on("error", err => { expect(err).to.be.an('error'); destroyStream(linkLayer); done(); }); linkLayer.activateLinkLayer(); linkLayer.write({ mid: 1 }); }); it("Should return 5 messages with a big message parsed", (done) => { let receiver = []; let stream = createStreamHelper((data) => { receiver.push(data); if (receiver.length === 5) { stream.push(Buffer.from("002499970010000002002525\u0000")); expect(receiver[0]).to.be.deep.equal(Buffer.from("9999252500100101015146280476644257704631388170113653057588012585115685032480066628707863041460278575603852026354330026747207821607765848404588033505885300832081385380261518643200046316082676286757347226713881708341847061827021406218074667262782481428046364348143477222657358680566515720510433616266781881732251574064313511676603211745363248882532717075871201003078766737615875737175401415337144254642646604726348335217235386118315136706401215683114013024405263722258182160013681764065261415646264231406400728034047777755134640045300244236860365155656605452662603371646426862542807210460441451844306105573375626611228360238784854420112330723843363403517227270308814336582221074818407007188225875708012405571444365886604710274110077884640106370785543760713023876107704453217174868528273623446048468503132526862271327101050627471867088438033563826163787536668052744574184720270863714141648113140865467242073106545168310568183632633766651362650533060837785475842020466778015711721003736214704307605432425524060273545475320340586554277273046210426081618105758624620413410702433122033078417706286620040087263240248037435820651211864602731522408123213166638175476374517701773857786813704471561356647236012753027570200617634211658646883631600766348637743307108370472485067663228423087877084023045573531506052267702168641440800442578174645377645485805506800511514348653775348480551337821266421342756050151552375051671027618330634816445553572278726000218581274178064024348542270083583302110267567517277300364110547782013304014885175504322153044875721711306624387571315813563366024718776736525106647328440105356618567011088332865781535141778816870608542085542367661365217780837708456110375654542236461271324163756234206751371023854727334718382517633568718672861172715155313882214542367253552872336741770204706415288443658371738641116810067073045064244045045612141651053271753801472206556530105525717825556210332681417402765841073618444326780141228385544213108565475856574754726211262306821613633711615864066147430685416816032751526531736814103006803024166507616130252535658864810211302703257435272520377700732870671155526714005878137013641833826262245718465712422571587867843183613533286373008140314287123248206200820074145852424141127876176564513833853642425863218476751315832141672274446433705721183410134431755337842881763781221137070384166102655736548747306053151338113238363641501814281852814368024082337285233614456423507125488717028756418761412643155850878586234317308385166021481518385638104055751714707326184605382240146573860178706133582587075388242818052618754023323641651374068526381742212307055341483701286718518557312281586515383535114208541663235555553601551240174611806301252203203575808773836250485768886457323152480716560208754230152674130461258702688308424360140408478030555436525758400180245265454745545475613763101857882585038826274206507421435868233555026156763323434117474877016070174218381001155841085677750160766170208242270101566253770257470723745177265531261122381651720868758552372816506734431101271376042022354257214503470111876587805827258683883462542022118232003844081751713880602755746585144587884118584203243208781014435685304353284711130113808776753262171461786586578615834086363367716164310081865426473854628080143302438348426211412301610621788604084668443064408816338875208725251166244137754022033438636610316260501153443188725241060126474850567368828044810485838364252243343543140560582550351063404857526816250131230665360130848676402514523633526768763138735512157304065585338526173564443103622582247666338056784371110462748468132704022884117770540611258545320532062024752676881736100785728301737825672580623488725710685104758740748710480676551432304661124418613474326380558445485518240343788655023371470486232204712140216154826015861254726086751162067214173646348110237115326077308806167251648565471731588047711401673725537076038534213614514344357015636348315424671406835221302475748287368435328165017137116734377604406161552203437310553064036706674617543476257474440687215870768087286004303011342682470745021864425864841173000203234555526205034230470735710308686485284782303827577388534676644644674587050464240327827054485535245265214432576015483346235572624617331602785780364787381004704281646862400803767870755228748450342341760703235813148862153646133512627618853325018267731406577541643122071886106535667738816856836115612205284174734430406470415412832485411016287818571721440346333524502778427161484403133675121356051031182808537640881377434176812565885643061061836800028457570511711710683771407821875340357663416856311345324464471077072162742463356221104748211176871321535280220011110208715447266127223101864818313301571482203420201762161173254370027814828721718081385421105604626130853733280065816016883604546076634758224123576180221070025845744608313232578788068330131017115066278114663367780442543532281157525556152750315620371887212200365440422455123231186243581153116770667858552034441165445627451704230483700746228484481310671772185252037876846767360647483117844815418404501355777623083462355503484282487728164164485570120718467145062000555201242652114032377013170145556388051764058210783012331015745225782885353501867235425683640812025074816337833740051630064843132050560340043158582588656131862707768157604784273305661008058750671140656506854355447650755532474347535123354625278658072787771652525738438842565327561154822132500828556441128640632370561843383348351154825010544402441710046030487483012380686313437466446507077603180785304770874320038738885352025828741325581274648055102338874046311003518030684753572227465065867753414411078171023771763027045678574316684872153718025211240801074833225554586184311546545145638576654616366771845036057425178103817074657150708531838627283608436862363666305241634723872537654067066188758380018813073001470373406587065138650060244536486753072700220761520653005674858382431724554722658773872280825402634527834334156460243071233368576228225566671452255104881851057361365663126160444013511535518053243416123035507176362452431711511252323085278257871014782216033766636235847820823063175361778134625240747650011547665578154358735802044503530266738250876670421657715134713838387140127572475835005220068536408728228154261813010038750323151005578768034340587415665102872546862352674657205863136748651671668444057447638865064612162671671830343250160406012354756855350710778528211135745675854688614311513160808107414604223023407070464136645213653317085787180380854717545050034457704658305144448328571660188157847378162637128163300352820838834361204510066220583414583550182676865168010118074876855812751135608131644858025607878706173474220220640783056053461875631423436208582737742565115553667886741328043550111271153566163242131658762874453405100452613127201727824712534608702303885228525324623737860801300183286383271806263654121278631253770581736153436125541574664634885662517328002813140425542327367732855102687632465648356451723632078284471763473626084725037356763260132223306301576584802838242404340581746555422217428843013548416214488368776461837750753161678827855053706054662341585564657051482747653038445102545485108162824761284864513575744480344034443502260557700511634658045408741707022" + "20544310588711283888011462804350307503041764548725561144504567823162881758512823338077813206451457066866485635587338470710230027478625271670038388734816825608515211352864435307140111181158121445256711717078445473541323785007224468551088254516787222716170665577031011510015626862416424538752260783810201423706374567627124363800300178556376888867243137682665822058576213178482287802460550323150264611881587001564031354472312650414543185104624775158504500481303760286231621048438101308113760400865213127043060602542382842832126661205022165046177727325514568236226316180734468703666245511058612157015456570408740502142515014772360175428342068137614451325453485055622142426067631832802323241685805844304071732136270852184474052135310654560065041336488603051002261634031153753357142276017744350356503716112614673770153053876333816746077207014580114056415008085585150858148368377843211841474537136221647313675485863564365161238652467168825771072545327382870232775567170104620486416375628652478140035036540624042870468415805523251352083715358638714842352427726851074351847812561525134732828283542751183784444576122041017036320882647010283606216130483640042252076805156421775512333806642672351550041528247883475454004783758327546253834331763657405764547475312743823143645411772073131768036756007878866040444523428310622281124656284041417450547261838233416717716836805361724035332578225221334800003200673307655813210242172841330676286254514354641326480627607228586073122382801666155644712523132307831236615257661677350573642834270611506678338851231622866256524486404121527064186884128014130012836788606040506017253804640446847202540058716773070870002318745878103060142147873150631487457242068068781556566724582204014026655778332828758367406327621620388083474565250717283476058503282030184042277343780813703660876531578705700167780388026045334280001821323876825445274087243858765620507753382726108442542558067230844665777384483754276210106832015052788427175307462106830274226450263525128587138412364300250011218512428368712231388417754063866371168776747772055048430618517103705031642284325320751348270784031571682186600760874386753274507840532541742238548838160872385673776628665487715726661766175525613815334608475857301475678080762023311425314737653533603833338575402863350565862356224175820001582710261223472876147416243383184123306162176541105168444654206500167377543355830070583120382865406386706637278004757780260546466555654563308288176641435160818888008401744848224253145840514450776011370832260052573485603541521412336011020613434817507327503454737232016465486663838046548475852580281773153447761486242103256685461768377224411737721320874183266356264186218640618756043511818357070473062740550363467443026476540475154475334615654065550787014861360226217845370316868873447243874756617821234474755414338260261701080042778142510765420280\u0000")); expect(receiver[1]).to.be.deep.equal(Buffer.from("9999252500100101015220681161073671806410787101501076203651646413331253637028304626738033736564876177480717158683183277400574112473370362620113612814766684211684867621084824471061111085127710857208606582512087453424006662148333685780482716051115227360271317046670885833868505603033001700881720818205228673200175230645544405702120118728480086685548226807881106468760713006811161872511066113366805771502224240600857127880756214247608066863380138810381247134004842342574088611724585320888614182432277005644233851144584873384483515247034388027652003028571830157341275442660004165277538638066861883663438423664404310505083204548456613272283642603404533846086442052871848861177276757260514536176472515535627275711772864150146424186225770724864434706833432524687387056417602636145812501752627638564704570371173670285413756135387813456252124831066356147103027721374325284380820515537487575767807323654130170606752203237674002853653332028177870226673700265818828835854624315637550150484522126576888170457151050080761580075438470360124631804320762235855288057442210827704714510240743476456505686611435870475435883753317175006334642410502104771644787217451443360206825247734423573018053423533210861246860634188147613465121687877821117827067265170355857714224046076840604377673786220302125340568246741658675320381641378627156042238624011655827254133408630641100566582078388138688522841066302323867084445735787681186884340836033123417037663511814883628365307387213778833818664307181586080351011683536410202764812852587420814150606160432838808384503488443720424633577785816104580564307482355777562488467057186604800623131374204234618714136723600768362727658775645302376586328267661737021452326781077213063302480443341321430067057274560416873488061132022203863401162541840613047382225025557084812045425168106734222523374364668544671202172561757432361510350462402400554305638660166284853116756101348586600008350515458700143525250334718337780103104210688814654211021705362232463472264365784724031604337476368220427747132132785613477323654604038646760845678234070720442657815406401073238422422475626736747516715271511572428306380122186101757562773551737627424232353548336407542547785641025441678658714340321548402641255820703274417731683686411417608115868654647614674735463104781672365635835870835502732702215484238547430661682655785644572706442132041150506526806284554171055731376610666074253402228816251628217414005448786746711115123236878664356242674070115254356120241861710748755282748020772348818644703628838485318526557322234028364324051532208413204010874617505586741232647161804715356263855121581774742200206617101173328086306807123383317110864536678132065567651385756282706507720885488748667285262275803802502481365652857450231647370640112810857627323342684585752670506445413134770452516643030466223888352244717527585766411021781555173425788315563200086564736832065276576023371874378378455100347182011421462883551004077034345824336376516238312358180002141137261864484446616027710663680165718304405482417556035020071057524038342276806704674352703236236452717618885306306557601514346722270577173217076370716338562447823385408565777456830320750318071351807226878604270027725251737100708553741680088386588058520540650285377668067533126182548875718640052364451772436132264303353533474034642134207540265820155261718233342578203846407613108630732868062508042142735672236453341622304163123333130530467136751002822775607686868687621714035655746768415037354452721054377514583224060216323608852218573753057230037201332544888260142445157075565047788175853284200507104576516535201615308356450025787060148043336128738580822267137234172730574563235147222287371135237376740161070170547847856046127683252853778462245235151267575164875551236841752604473477415755444576612536175455602570034312806504160465012862562128845203278411537434667755118828187125278331222241838252768610321181301256368236525463504863566156837445618480470641143334154364553824378622232103021856688215517625521036325246354337182407181624417763244810213624541715044682501568805770200586135027546217257730853225625380382404061582576380081477273431864383738385806110146853585776005646588286010546364102825163662704084008160148767825411001148408455353558858437857886457780815508576300414683011724623584548504531648748755652614524457418410253211007542543658711612601087826082153333355636083575830284454672247272754032465286380200056335364480736063017573750733484386465838881518008638615740626136165553621610463825416030547534513460264246136658346705641638424428287752315418177236231233576400005177476208124304688483383816503640365310144243183272816077180400611820825744536770257522460170724702001835172617585605226146581885443250045712385854247240857670627437143611073822548841618561570156088622015428164357482234333121040706343246808768428012151343800608307120544861775416352020563243222673222188520843653387744535380515173564167035777867263343406022775410316560858213600114021060204186250686403157406013222718678120104633806762583170461530617013038777265216158271822217717846072567374526824880406471350203380722850615310656760546876000837133455200613851032375561785462253618525322363862453082454556058276783034822360380073358256054863503542836826278856644770608580747155343538220326208386383008667334464263677661428405352454884271110155208180456060701715464364307738644048728820120530538824501854724485736747072853516665538561074786755586241080534321564338241753727500006888868038672325644650041602115716626558624863254057827471453465567071848578205140237278314443176127842735134416508054772253308043615457621105005610663170562636427323054084523125288851757451316063235884741641626253576807615041670035808064788036452476584180215557511578538240737816780453454545438380355558272746131821400642358886834633045235183523020812456774072104043740227367633364716221320050526526470582111682431155220331462214562773021806418055054822454101212054805430005825521358277035860744704213184767358766203721615621106781717620721080863821165125033718452724406747256145850220210561851621383728550386138601167656672675356281000135406301500270057257705807511711246345852235661724875007506181127285166017730111034261618605672167556552017342035125032570057642824526117453858014406743777504402142683021106536534642076314328520680471882786860366052668821626210804414475626707153662685411662650660640438864613363464581078014802852242341055533117870264284315464453615012785088881461012243057584140743710585175207788452750715632156341435415037851012213151367878840588277655302388877841085811520471447866414382635815275558510626721184421783810864187037613175710811882183506288005576416042535285204115016856745407105657626022081222868184868773522326230035687568627473524655502802853641153570114365402280143480581264445761020227424032210812766144263723672127176570822471341631445235717756251551653004310700201160781241757130001151645716422137705354486228758714833634651052371821686023855704424210274444834813514652573374703081060575368557483828633351276264485886888312073480757274535651372864713271513822437122316865183435376832577802868884125712582414812662373342686745811745154472664048630582422686005272764843620561316257462801553475648760043035646711388312" + "83062070722120578811168863871665576663236147621351342267052022711707788868341444832737568677718142863346673312367208630111375182184858077383038354425547644358733873804422353441174287868010856382771681722051600257877106414105553848162212880781181620353232510203051462526430044745008027635412157237541357453634653562625358172163364044032476388556030852528083857684288600344864348454574141550207212452811351336168874716568555854521337877060516147380417348064742744541364801877776884073020454606855037326105663826218526786506872205431621288827722717777704287603624305556625484556083541278635425450177826083043524551288655060347553555503432325384862757735066178251064540312564176647237234358246127374386628538622043225572040480627000844471758665642883068176300232636080872640883778571214434774110008628861402053085032271845712752171775371128404347202120853684228438840618111042108823560807761715234251464548776246223753088282401752405568612273035717458701480072882464612677302541000338688824475255211623717314005806825464423261788132531578354686863228854177542043161752682841365272340710462134776401035707782683357151510337160557135707531665267628370058073070532867721763124518853388557828810684374410254155801262551407756533731241220628113446856358167552323011270626318057054454532720582468745702742313562121551616547842605803140046706545303841662223837484044562277211825178634246672116453567318225434327416232467262460833052417161342884166657400434385535851043567158473043580436441488728232445563783727865155378186364553880770827772635463202208633802688820365346462165235008757504436228514264164553135751434701321200761504520374716537341166434870328520428264240023457160114071654536582333216278476000236008033530351718080227618673020157081470418006774811543536024465647423416606618005131488526800300056165877874411635872641261526405231301853008802701321827838731663311285728011318512756813457806574300615213747188044451558661857207166221322034470103534601528066607628054165532708438304721170210114837307067050236533651173123613183777051101443336506282386064160026237123120302867176213760600628613016142672040728821231052470636336000126061064046652420435822404743220346007667306872435251412187061663862270712853778353464777533844485830185402287670758478420780880434477537054723533472173544288385520652513662745651457670264123537411181535034732343806372104546266634435673220175377013601820766564551556262086428150221235580361465837278328740616725611222418227606827548332505070563140040755718135561432584523188826027708247407380185435148710450322725218071477475240358212836317505282512730146156881826623168200276740002127525327415037816871867883267305566357408503852866458523871454183516647260757724740731080344187427111652383136675310823383441212068154814004676223652028741705738268832437173538115545867846311450437367368232803173608830\u0000")); expect(receiver[2]).to.be.deep.equal(Buffer.from("9999252500100101015361270410754330735214064438450345335157824636045774472462432087132721248148526462737882611485274218666207666342256451103526158042448044400758754138038304762137432400151261010120063507187238761378178367655474482655667436448613313751778814834616482665332006370083264330610561005661886756088861436468424041625830874577208077627418825562541534874152333043376130685758011050762126556013310131451774748788141312665672428583644068551053071407814724414404388763552753442266616563154541728570371453130050608625022200517326501667106841716357745678048285186471881851837232850306784542484643118274110534574324886283185008706861534685311501567618663151842301771461521860257465348475021455457468740318435751712376200223511637003136322477835216767482342748743241725342381438248450732554733342505400632046660844646212611783015082644811776124578648122405634655667618828802154216284700474800487274447533011600408778710561616813603880561770582852487100178153381444620712352868466857256871212623407771051114353562186278844040027471673460626255687452440548107330762486382123162366188357006623504782571076531720202774222021745886104104040115512415616638443503236625077220154531486276800177111552043705538872560028433082114154374843257526662788772448454224764276146375807182487566444720538635250761145351747508131534238760853604733321126241016474716864225182542702676552633666146874660348285104583072151706636856860115231417553076708677404338201248136864383263124821723775117876627704523060547150743715548188010154680314812517284332450283731762634525702331807540676405584087433861088761010186730116134757615334373114757416607013680780318702173128704108115003582524067763882803427516187766486181587534143353624107353518063406404241307153656388126538605001838641330535063466362468348067326247047746257721677013078530113786888552770727876733723227435086322611032832337457336623143836373406260026046656742104187472456346233577671778670423530787140327168171617348477107573032007452083335267013023756878507657703583265304114707245344870445273118262725127741431411722260564638350366437755000805865750818163246052700506035305087704573820535815487448312660144461008876863118812812782272036676450247468718333387703343581744517777123418260444175156452817572161462201008216258014783382238845437580706324676474044253060737136186515854172887573062154650360040731070361410637648437008621083140837712763162862257117752363232157628218302518002475034226573784315708413568017634726704371111472841220600454761345351453181632100261221417141740082857621268667176785388205550846138011381341665887558348807280236754346530227853776442512161285413103405255856068371402524578481877037334785422016441284618640671500582727835724858233607770486252051387881507360233761884651756158602234427178867237334307778034445676771165866331781876282881380368033247516340374827578115315455511720838651731225563865200888537413166247514688100280788724868461362348604324106402084363242225156847356502281603674043266003463563510114541815314467277634856208023305126314400622750820728227084315255311842411581201268761565141482883677414057482020875840138120864280446607146721213611858304848430526002233258662716145513120377727628423181011841472171687156542682485441440526306073763687042037734304043107442265800775254131072457115704824652572808775636650664104718060116208077561450646620173768477637443237481428457167571676658162248564603083151370030118522852363042428152566467686727438486233231825614302847507877613410508220501174375574426007347854753584614273667260431223622322606615276183215104782732717231205561450348712463343385378557603466458201226232284576021524442742712865745285136817270864310516553512177428811735812350533334630153115725158065621760784861820714138513406207015804382166772475736100626784481110378442836803578616707385584623258138305464748202014310444065712885422560662580473256864008006506622060843085255166165606218732333842367076342245280053012468860030667156870288857883581570215228221356153757216053203044235884333005155230364550175068575182735577270308247065650111071246754185564252248561673017050360628541746447214168460860725522314001883434036682115733537437842301132014672017853746877351677158217611268140680327484451335667488085434884371211338845127813023078308626472718748614571128086700216446063221886553441216034522744721283280762001341664374447814530066216847584867605847182017500104883848388100356861348400237575351425344025837247142270835065452020515037886881233240385308084554378726008433834425507153578624857577357425462364880561300640284236830632143211161630283527521645542317016481132333033258622533880166407054530712427847147635041437872278323145715575308454841118531741557545808465133542831353127173650818614624215677277821204085266781466521635514546628717317627434718623181876133625204742044578728581184807840651285303103025850547828828426300153628062712281284166070661626514315748048662120512123581404654831781456335141023677462631040823747652770111450132625843320238156677631446045120011775150767584324030508674885307478638023853357042845626507064117568324101656752746075666504580677076870107652474615872667142506358643173745502022143603832617207407181771771362186438003650634233018218776772588203501173018821165665354477047076005661811614435385567078174062288511274242555771441474848256157366656002775746186565207537368282026662672666236686775576023802256443312104333621558668078353684423434783731800763876384528011312247528638823422150205553537530456782551166040815575185430610742808525114713334067548217047828377140511562786217052325757012808110550374210722176254627584068342144125323505531573257865005554444578427364584034366715825348473712886443715340381656870362736001731343471411678482670574880675665345612453430222385367555121157214866000724435481744168265416037515243007628716312340628370720484217140450645113036414170751420877875207736061428528834437263451355426282116708166562671072038431646852215832270472517243123634654243113024478623201143731364407536618714125775645028661415530006467622431103787401764544085705033310405051536368537781657740454734507436328376352560047560428612554351407808555571308082731288654115474654661817156551706872770742016711773026558254310037158770518378377632448440132888612815050717425082024644236483736166445347343835673806117645343614676244188325344645031880430348116234778010504561287261177601473846317212812173851187165125831012888550235377001541620042328440281534300840681882863014801177776144820101326317110204636702540702636715667505087408555008823152344531425855140584157128786665130154050152575308616581854153138834535685478242648664170678578577081437527586001267383685655556613874388575621837285014371461531256411304362616122201186450253847237026408602127566182067630015076431373636678111334730784328768268547318314711022330850378863444728558772606073404508470140145768332641442328874403134815781061011141038274334254173471268820682406358332473146353060402813515273070883603326858334750330226538761344140448815226254161252541024410243050770640731751320516510045015866116301365336051532560275107014020451824556807028867258621063760743326464055287744536745380582625148258675265684818130041686537060267670416565416174241340056" + "31261378385240031331404624477606358018633374388524826470848627710645175175801720775816216603315483857808218466155346652028116816671008755058433445663767280545026283133545681168468175250838313624753586352171800628858758277343657465152331186325785368662573725760543843406341445614615467418270373503270754540354836784105126207001516731028833067170157463263630757278842085658627161108805357711674614877142225726053506587658648637742366327070728113353202670514650231320757681732217846413658775282842734433007086810103546454143568254760253020675088053278488153886182311000633658454304544812584885540151074040240687704745318161850868422058121475084835186170562086423716347768788541640422512483188755382885086131675030406825476254850024260413374612735825808421876754022827252385056153554532352038818550855404712843063261231800143632024521642015462757440226780766575157150540841484074231677578212183626145313706405800830712332137134138444781346146478623130704637141721211545136026646127220126542135705082676310162808172444045334808634340571544286316814102668225688834600351308856401358433427773275244522274135022345048245033505832041854361800168652788531507535221404338470651481327001215770784538646171036384757508252485400263154786710234172362745214821840811302046745063201704276165660221856283683072757162373122458106283686430722136665808513004140785644762784151427408330114763003808126127255465216140640170377206021787860614000860221768487571424367778426171040273802087718754826664535335748887558835071751185217501004357371370034865846778076234870018843060464735173543488356751134346282561587460316067606043234766265878555115284785386301368088343217774342764202887841576425078744718726851136516642245331365157102615831156573007078102262576254785801558361060458022835362504380366014723611341068078180748860833514186256437352423341122336303110881553434653243030067604535523724312375675630265805781330743002758437543741023135217581773435227021018737456466641851114135558133518541453748007317831183032602731607312282168632160505426377715362730047812134134827647846542407572845702468132806162138108522047582077134333882282674414312712581788335076426842676475486822574600143572364781517434134432167434312051102085052767531630638634364360001820350688757356367381633164051461175275363618623212174526782372627508640366011148571408181680863348873680066774323805657151167765320786525561252238525161001813458757858040801780182365370210816001576645333361872287776555330848844571664051363383560665631575640568532836331254013623865751385135002873132070781401512015776282144464578132421334880247485582236605474821887411300500255334331814221485771776608646107143280230854846567034278666818626761546347400500761507362558283888315170217628655567770170758375013855774316625602108146366822025348507816360530064657845737808348080317576555718160228400743805336\u0000")); expect(receiver[3]).to.be.deep.equal(Buffer.from("9999252500100101015482020336334841865430482721078742358448656651783532021271300628126873083457840334100370414227771074466570532606053167358408738230557451381363114744440631245612443367148007605015888784133531365350786675141121770388006545126802645735782451700076586347301667130084181153813218638818682842345357106420113686663416571545765040672748354057703408408517534448864121384502014457337116574170163530122824033423475222114306763021205742611141862227872328465816457325285028583730033020713173070853050843817120042382221614681073302666883871332383715857007523586228130743107320240334355318837244321078244585852624484676027836074218565450404782788540852373702781546353828175852107004688763782723018880217881047102650063724412352381454530300056020158680868552011744186056155323065845405423660101157186362047334738120581880541120702111050446212352537020631526444767033381811024883737015162447610163425225782742207563260346787041762685372633852155836538178712252064652326186534744108585531234314744745181177287633418216258527607255738388307767225350058701761234586752030653157552048734430780685544717328635540680682027050344648250677756172722704042108543345171370750546116647282330624156347626428817121743442602334118127035885582213620658563021521204347012068811108544887543858608387743024764716042061236434658010464080816765321616833683705777884407268775228810120322151223500356214256815341481107061662437153166410125363736671671704835030561055253374514821145138187150215375373682400271415124863684886065168607551557433000874775767457844005885440046667742434352787463078541256706073622042020664280263414844406484642747563373551518656111677562711520335186000680686520522330333778014318807557327013345322864818155848742688011178728386426816100132034316530442785040184117067731148375110262214884013853888284733585417715518054806513248887660242041277644385657586708261846837201454034266183371717756017422541004301125405661235015087463755248768573848838560076566813851187531243183436847671642846401820670416132850442780120433521431006652486548827264546365783786485520038160870054507074446543615345740783113252205376412682276210628726524856778861344164865325181846545482088016702658638658306607220348010278333552156526371352863304421156667782533538723062234056612064577405421482350405332672703373426880652453046777665175320846517324403231438018101403402667705223457132030151277038002764280134386458378855217847020276588131110802304744110111410134241488253423151474846574055818456342243273764873437264044763786703054205041838462114830428630630363071865426074536505170346656770661175854042446745652481451546653173045527068165608318548866750025874404601503582442503718732055177625482420132684137484825032261112762857086101633463816186111377244177083106720672354536433352682422877187052517584343772631155610828287646334152764780067181262857878765278753234548350141156228627715613624516150781271820703654686745654567577567068113501728471143868800042203303124743636462482636810355351443635182814217476574266741828112753023431288260152730053514500646636533680124874777567218360547336054133171747246248502083151285510656130073318887851217112010612854768813070481563068454878370758373275427010412502136462801334021321671835457843836668206530544563635306367026285538840481141180607565633800552310308040205506736522507037158773050450383722218262138467171685784351586815683117001411042688343121452167404371101568108026162233353871061232532880045172126882180664765271677738430238462704663646765536741168072167364538436162363626671606133562877014372447024486846720048624837732867372053548682874670478808723583325147038702761274443460236664735125421200558352463765377236657851045242574326405063042886587401843722614166065531365850500360612713066186140102312206540868287071684225648738261702770400873061744823128652608575137512531421046645150847424137052570763134280223450064832616050306545753163357744816424411817341510670701275436710311607362652287221454276811410845261128108038488082342460460735601063100842883380415885240545306580871402337424147450201538255232127517427216623654720875161737812257534116270077075633627356474758123500754017272183505077055715220002831303582175537242382372537687633284462763282658057827617686708487214048187184621515083541708001760112812258123435387171847323608556160164060386552032538436244733452227562655336428043113500057765378822740686588381852874780076403243166601468556272607504837150871553377258431316137355512037821030765336100528561836038281256212330832665204327466140870631858570312630553832201758567184481864661327614728566006022140632182656666347621767422260270744413381342218321862556121724225030474304314508763166342826286878207560880473876258451544567677145764242474605842453137268286438558083814804324882002353141641810287711184058555008847223611377673662025811035325737237351230436177411302557123062266273255830483315717755538483438030041744435243145101122208251227507066857248710374531152066172144517511300382567873532542560651742842146578228746075803102571634150841475615342333876106044225071483370835228880685702116824281258457076806122282123578504087370783607723622243346767784624528450240884708474026002061214625232870272032325123133220220103867437874568388276562550872161517354724477815488547767826167545320636361088376881381288040580418251405721628627026868311746665582600533404645218785324170347757881702277348828315836853622572160415646804357625561288530087400681114103757228787544753423730314648515725375665078401663702243520508176631464888161554155123620614318426222330352463232686218835654608554107046663543876408006358568217311875134877074433248038281684163486771405541341526373585023010277414881483834638325607853055323044337333685555547455864044543211155774437042661768601385071641887368765818881673764323852816400083345315431084236823356118420525274750880488422504421452007545073347765815188331082245008476565665868013671484511775638536237780583484452141535201861578258504434333676087773271506044853511108163837741565435788853580114841767567260767276642088841442030286581267286130032481784315181408627753176261535156217488257283554701403405882580364160421865673601606201782116783582067756550881073243535744074661231082037765416824205665565270064872421418348731045160323554502546068044748220623773652034181287336821276164215215114370681270447865341236710057443440747372206237068202773523515128351602022533010558554011654833436132688170118575176441517413322365177262680753140260024187174843550865017670272628087377301282842063202878162412356518107054348063856478772506278640823443405326323328867385273342736385654260545887554323855106171600861407721178141582512540418563554558720528475828072788648150778532674731241412746081684813151745768068233558214367784154214540582222148474540828477123721643422368573173161234861604641412687638576223585013751037038204875636130700055101217312016600626001613264686143417674215011038037278008046284002000877205734663368052063078171664863287770258646642827450100858625043661008354328417140604557427661808072671517580344222255018752154202681706603018043034553025680148534504285682304527222322367017321242163454560368463344105624412282875517211026106676408624278560834013002836287113338385674" + "77004268538174451151364856674851763447218271828862825617027871175350038435301646565287601836323222102603057854855404846276276545416733678135378076350655463120202637756137428453521183046214756510361245635663806335361511470753843761147130340575864672680137514034568262302268300001073333187837455282886880752400618535400143751761678116700466587281301660174552682847747356035480750576758525585305276176007003042172713725705235808374056327815646646174543740538081408655338726583503600306662503122811486505803816072035132816417035536080104611476214336612634615026255606522588284080435340168373706378161536606060148360304827822704663645322461746281103707803473725327860140552758048367213402350744705832072313662256685351762328866265366037232653604220527034037063031523821261016736844033464000380353576056703585086673674177118466177100732145270656214046783264605837654601465866656852806015528632160754161113362368771030455561227763766076573421871768476346024018732633358640886087562405838716712838050428820537833467600712667181322072466743154044088276752846041238475507588486636173753107206002681477123824763203557318857583818437420684227667612440655718513468118334783845508650365330580471216887302065486505223763840358544346778875224763488786603305515040124564724140410170737204683707242011302608505075831373473707768347841167436565112572046688282480402404023604322158331336051260606702424034426200781585774081316382308541622204075415524104075477523181150063335032380001410082886564813474003762818077172308570626773150280753706364018201357002205813503253010250054674865355866807247505260650676243834646720252236812530777334068265471054456086742436542214536272167220767668006661682758854611772124738545358267731473001181754241760144817658223365675333588330675644421422761827088066483736108581073161870883261786615747310027808211105521011764340108316282072325241552728804863640365654410865400882856408536650576554408678605014771214203138516075000810023341483133715460701227628521418008636565434115238281865780805717843244362062382874747254545183231120573836363454822662413158526445364863507000105621672035271507087445166486422357283382274388675816048765827847757548247032600336273557670817036584333275388644087562701307667648256666348333132372076870010413752157106837435063433423364478618258577771113773134132443282482534703278617105844412036338855808232464462447033022776162567356810852267756720865677506858438214428220715588204887061810338423575147136862377846623017808532205025021311754523050204357223240768478561871524604863021043662431206182761810521231714571858657603346285785636158780246716864640043586676312177783347824210212883123322730426643372523277431782545247681683470045341331475374286384851564537352882082633786210364126061608521272403054433178723378532761456854471128481621378031607530866101556113144552335488564481315867202\u0000")); expect(receiver[4]).to.be.deep.equal(Buffer.from("999925250010010101555277202343151576344407106421556228625657751680516540125228842083246316485035031868001154274214546602580187611585480034222734514414205564218662235043151758541284103337440428346025675442077078718014385843551488488018628516564716320025651506203351273586347322885708141484862241763020277812486364780076660516480261242151403217862454478647073756165115016478676253403786510614048568035444831630713446001642276824040306835228411446386212566057176136381666060168328112886516537248042181631345750232814738270787725418568135178433476033553431665623587521063647864282878861456845012687383121414017868185211077174882133527444760476414686646155430248417855117656475438017480762588703163776101484301000113277826640860564777756024373303524813445061000138427206023820188545010121586655848033130388680406584870565688334150305300450848276856858314335436383546521416668175735674864030768067218760386608816183747154263554434856311452257173178072125324344013732643477233555530374201183166016820704430743237230614645035504550174843117321882230605577885218477047222857780855128083657425174007414267421525640140433114848405582074625210536022068650566260130144754302063558173535354048617548836434046036584116745524716021440676728711561630684536623828072786036468812711412154483720455848742303851357707375675785141343630457857650536623547556571743052148108661378183706084777888017848573234717634374660423778478072783620524200136380481307353343368574732432451365547347522718501317173688328157247405480870483111102463173603587551260006452270508013307288464775884085221672084256473561346337451727651708165420366681761105045564442841430317887264218482373064251375810471471426301068460340214250836254541861766484010225588822345523028133650372858058171202207174184418270014508331044338463235851543580458435007324062577786808416888822406575362717355030367833101104007551442177574173325723270652223637328726827644008761100501368750281048462813078243234052645161281101575487866642427775642801345618347657110346883814553073384635483807710635278321875776184873751202526708202830277872678487208020645703330060116433352143525047363048526288440584104736310662412221473463127031885487800314564046426474623520054787276314016103243802172783682463638860507387125631442716477044488725661001562517627378021633675238366311364325533546213615025875110681121101433470043635876167830482567457315765204738605185001045040340703717262385647473337638032362660333324213226573823002784758880220351867405368587277743374771742631656252368010512812514058226568528131627703583308865442125836238234562300863148823882672504731528084262122128168123157802021653338723020713722353367823123023227571520448754220142742340051334443137611614508163653668801832062641584636465173156448432808175846130003015823010852220545547686174505080404838886660534852630588376856132341147755831124311085136266033821534182481004757240671352374411057865802818068526635172831031883247517180147351256384034477348510547120286234232737582682727133402645148881473321217084122744022111565651488622110332571115282182838181745862558280075772430074723436620612340744354553178576108361731805124460603765512533534884423582834172238441777737832814072305378262460350217713223265270468510531008206263406235168866146028885350075564422143004054080441720217747252615082307506421385262835844384882026561586136876623553545672234100577204413281326402562132848607512166074577126478870067171565880683220325521535671015872551557442785215353100268454420880567634708403801163630045164627804525618633405183115617307881807264840481025711871044817108731563871222032218487327717256353452866557015027153114542117667248852458240113064814831742541463424778610366306384136667526831458252226320853450508471047317323218621773414106705727732565507512838285018273751572564306174286584867510363431487855814783071572506281716350642571614762813424121323556763820673440874858815768733154288076075471752001553577484137288005210155232071165520776114226615