Download Latest Version lib_rj_20250830.zip (1.0 MB)
Email in envelope

Get an email when there's a new version of RJ (Realtime Java library)

Home
Name Modified Size InfoDownloads / Week
lib_rj_20250830.zip 2025-08-30 1.0 MB
README_20250830.txt 2025-08-30 81.8 kB
lib_rj_20220930.zip 2022-10-25 1.0 MB
README_20220930 2022-10-25 68.0 kB
lib_rj_20210111.zip 2021-01-11 968.2 kB
README_20210111 2021-01-11 56.8 kB
lib_rj_20201030.zip 2020-10-30 945.3 kB
README_20201030 2020-10-30 56.5 kB
lib_rj_20200531.zip 2020-05-31 945.3 kB
README_20200531 2020-05-31 55.6 kB
lib_rj_20180705.zip 2018-07-05 871.6 kB
README_20180705 2018-07-05 52.4 kB
lib_rj_17072017.zip 2017-07-19 839.6 kB
readme_17072017 2017-07-19 47.7 kB
lib_rj_14022017.zip 2017-02-14 822.6 kB
README_14022017 2017-02-14 45.1 kB
lib_rj_24102016.zip 2016-10-24 818.5 kB
README 2016-10-24 43.3 kB
lib_rj_07102016.zip 2016-10-07 818.5 kB
README_07102016 2016-10-07 43.3 kB
lib_rj.zip 2016-04-06 768.8 kB
Totals: 21 Items   10.4 MB 2
------------------------------------------------------------------------------
 Version   |   Date   | Description
------------------------------------------------------------------------------
0x00000000 |06.09.1998| --> RJ Lib started;
0x00000141 |04.02.2007| LOG: added blSysLogError, changed levels from 0-3 to 0-4; jsTime static public is added;
0x00000142 |05.02.2007| CF:  reset(cfeList) is added;
0x00000143 |07.02.2007| LOG: blSysReporting is added;
           |10.02.2007| GEP: postEvent(int Ev, Int iP1, iP2) is added;
           |11.02.2007| TThread: blOperational, blPaused added;
           |11.02.2007| TThread: set/clrOperational(), set/clrPaused() added;
           |12.02.2007| CF.copy(): always do coping for all elements and returns resulting status;
0x00000144 |15.02.2007| MUTEX.java is added;
           |16.02.2007| OPool: added a new constructor; added print() method;
           |16.02.2007| rjlog: added a extLogger interface;
           |17.02.2007| UTIL:  added sleep(long lTO) and sleep(iTO) methods;
0x00000145 |25.02.2007| crypto.CRC classs added;
           |26.02.2007| CF.copy(): iRadix, iCfgValLen, blTrancate are added;
0x00000146 |28.02.2007| UTIL.lDec(...) is added;
0x00000147 |01.03.2007| srvReg, TThread2 classes added;
           |04.03.2007| UTIL.Queue: methods setQueue(), setSize(), setPointer() added;
           |06.03.2007| FIFO: new constaructor with oPThr is added;
0x00000148 |07.03.2007| UTIL: iDec() & lDec() corrected to print **** on negative values;
0x00000149 |07.03.2007| LOG: global debug vars added (blGPrint and etc...);
           |07.03.2007| FIFO: new constractor with jsFifoName;
           |09.03.2007| extFactory, PRM classes added;
           |10.03.2007| DTBPool added;
           |10.03.2007| TThread.notifyIt_v2() added;
           |15.03.2007| abstract TThread2._postProc2() added;
           |23.03.2007| BAR: iDec() corrected to print **** on negative values;
           |27.03.2007| FIFO: _postDTB_add(FIFO f, Object o_) added;
0x00000150 |31.03.2007| ready release for RJxCM: 0205a11;
0x00000151 |31.03.2007| TThread: 3 FIFO per thread;
           |01.04.2007| TThread2: new procDTBFifos() re-loaded method added;
0x00000152 |03.04.2007| eXternal SCTP support:
           |03.04.2007|  - srvReg: added eiSDE_PT_sctpConn field;
           |04.04.2007|  - DTB, oPOLL: added types of SCTP message type;
           |04.04.2007|  - DTB: changed eiDT_xxx types enumeration sequence;
           |05.04.2007|  CF: added recognition of 'C' comment '//' at the line begin;
           |07.04.2007|  CFE: added new constructor for int with CfgValLen;
           |07.04.2007|  CF:  int parsing is change to process fixed length hexadecimal values;
0x00000153 |14.04.2007|  CFE: added constructor for a long static value;
           |15.04.2007|  TThread: notifyIt(): added check for gep == null;
           |19.04.2007|  srvReg: added getSId/getTId(Object oFifoParent_); changet TThrwd SId registration, now assigns real SId;
           |19.04.2007|  srvReg: changed __find(int iSId_, int iTId_): added a line: <if(iTId_ != eiTId_local){blAnySId = true;}>;
           |19.04.2007|  TThread:._postDTB() line 'oSDE = oSReg.find(iSId, iTId)' changed to 'oSDE = oSReg.find(iSId, iTId, true);' -->
           |          |+ later when proper registration is done, remove it. (tag fix001);
0x00000154 |21.04.2007|  TThread: internal timing changed from 1/10 to 1/20 ->  eiTimingRatio;
           |21.04.2007|  TThread: added setWaitTO(long lTO_);
           |21.04.2007|  UTIL: CF adjusted to accept 'long' type parameters;
           |21.04.2007|  UTIL: inrange(long, long, long) added;
           |22.04.2007|  TThread: added _preChkDTB(int iFifoId, DTB oDTB);
           |23.04.2007|  TThread: tag fix001 removed, return to previois version: _postDTB(): oSDE = oSReg.find(iSId, iTId);
0x00000155 |24.04.2007|  ----------------------------------------------------------------------------------------------------------------
           |26.04.2007|  TThread2._postDTB(): for fifoId added distiguish on:
           |          |+   if(blSDEReq){iFifoId = af.length - 1;
           |          |+          }else{iFifoId = af.length - 2;
           |          |+   }
           |          |
           |26.04.2007| TThread2.procDTBFifos(): eiPreChkDTB_BreakFifosTrue/False is added;
           |27.04.2007| IntPool: added new constructor: <IntPool(String jsPName_, int iStrtNum, int iSPSize_)>
0x00000156 |27.04.2007|  ----------------------------------------------------------------------------------------------------------------
           |28.04.2007| srvReq: changed prSId(), prTId(); added cost eiSId6_unk;
           |28.04.2007| TThread: num of internal FIFOs increased to 4;
           |29.04.2007| srvReq:  getStat(): fifo displyed length decreased to 4 digits;
           |01.05.2007| CF: added processing of @include parameter;
0x00000157 |04.05.2007|  ----------------------------------------------------------------------------------------------------------------
           |04.05.2007| CF: added processing of global set params: $(PICP), $(PRD_INST_CST_PATH);
           |04.05.2007| STR: changed loadFile, just not to trim input line;
           |07.05.2007| started a_Session class;
           |09.05.2007| crypto.CRC.getCRC32_ISO3309() changed to a tabloid method, speed increased in 13 times;
0x00000158 |09.05.2007|  ----------------------------------------------------------------------------------------------------------------
           |          | BAR: added:
           |          |   +  getLong(byte[] ab, int iOff, int iLen);
           |          |   +  getInt(byte[] ab, int iOff, int iLen);
           |16.05.2007|r.j.crypto.CRC: added RFC3309 CRC32;
           |22.05.2007|r.j.FIFO: added support for <TThread2._checkDstFifo()>
          b|22.05.2007|r.j.TThread2._checkDstFifo(): now checked two additional vars in FIFO:
           |          |   + '_checkDstFifo_blFifoBlocked';
           |          |   + '_checkDstFifo_lFifoBlockedTillTS';
          c|05.06.2007|BAR, UTIL: iDec() supports output for negative values;
           |05.06.2007|int BAR.iDec(...) added;
0x00000159 |06.06.2007|  ----------------------------------------------------------------------------------------------------------------
          a|06.06.2007|r.j.a_Session(): modification continued;
          b|14.06.2007|r.j.usrtmr class added;
          c|17.06.2007|r.j.srvreg: 'int getSId(int iSId_)' added;
          d|18.06.2007|r.j.a_session: delete(..., blForce) added;
          e|20.06.2007|r.j.a_session: get|set|clrTrcFlg()  added;
          f|20.06.2007|r.j.a_session: insert(..., PRM oPRM) added;
0x00000160 |25.06.2007|  ----------------------------------------------------------------------------------------------------------------
          a|25.06.2007|r.j.a_Session().jsGetTmr(int iTmrId); added;
          b|27.06.2007|r.j.gsm.GSM_0340 started;
          c|01.06.2007|r.j.gsm.GSM_0340 finished;
           |          |   + added:   a_Session: <void _cb_synT_genSUId(TSessEntry _src_oTSE, TSessEntry _org_oTSE, long lInsCntr_, PRM oPRM)>
          d|05.06.2007|r.g.a_Session._cb_synSE_tmr2Exp(TSessEntry oTSE) is changed to _cb_synSE_tmr2Exp(int iCurPThrId, TSessEntry oTSE);
          e|05.06.2007|r.j.I_dsip interface added; <UTIL.new_DSIP_MSG(int iBufLen)> added;
          f|05.06.2007|r.j.usrtmr moved to TThread;
0x00000161 |06.07.2007|  ----------------------------------------------------------------------------------------------------------------
          a|06.07.2007|reference to srvReg is added to usrtmr() and a_Session() constructors;
          b|09.07.2007|a_Session: corrected getSEbyId() and getSEbyKey();
          c|10.07.2007|r.j.gsm.GSM_0340: parse(.., boolean blMODir, ...);
          d|11.07.2007|r.j.a_Session: added:
           |          |   + <TSessEntry getSEbyKey(int iKId, TSessEntry _key_oTSE, boolean blUpdateKeyTSE)>
           |          |   + <void _cb_copySUId(TSessEntry _dst_oTSE, TSessEntry _src_oTSE)>
          e|13.07.2007|r.j.a_Session: added setTrace(); clrTrace(); trace();
           |          |r.j.gsm.GSM_0340: added <int serialise(SMS oSms)>; instance byte[] abOut[400];
          f|22.07.2007|r.j.STR: added <boolean equic(STR str1_, byte[] abStr2_, int iStr2Off, int iStr2Len)>
           |          |r.j.BAR: added <int instring1(boolean blEQUIC, byte[] ab1, int iO1, byte[] ab2, int iO2, int iL)>
          g|31.07.2007|r.j.TThread2: corrected _checkDstFifo() to check with 0 wait time;
          k|31.07.2007|r.j.a_Session: getSE() is now synchronized untill everything is tested;
0x00000162 |31.07.2007|  ----------------------------------------------------------------------------------------------------------------
          a|06.07.2007|r.j.usrtmr: commented out updating of  jsSrv_C;
          b|21.08.2007|r.j.FILE: added <void line_set0(L_DEF oLDef)>;
           |          |r.j.FILE: _line_BISnext(): bug_fix_0001;
           |          |r.j.STR: startsWith(..., byte[]); endsWith(..., byte[]); added;
           |          |r.j.BAR: startsWith() added;
          c|30.08.2007|r.j.BAR: int iH(...) added;
          d|10.09.2007|r.j.PRM: enlarged to 8 Objects;
          e|11.09.2007|r.j.BIS: oLDEF_I initing is added to init();
          g|11.09.2007|r.j.a_Session: modified to <insert(TSessEntry _src_oTSE, PRM oPRM, boolean blLookup)>
           |          |           +   modified to <TSessEntry getSEbyKey(int iKId, TSessEntry _key_oTSE, boolean blUpdateKeyTSE, boolean blCopyV)>
          h|23.09.2007|r.j.BIS: oLDEF_I corrected to return proper 'oLDef_I.lNextLineFOff' value;
          i|26.09.2007|r.j.STR: filt() method is modified;
          j|20.10.2007|r.j.LOG: dbgL_xxx methods added;
          k|23.10.2007|r.j.srvReg: added type <eiSDE_PT_smmpConn>
          l|01.11.2007|r.j.CF, r.j.CFR: added type <eiAutoPrint>; GSM.03_40.serialize corrected UDL calculation; PRM - added oPRM;
          m|03.11.2007|r.j.BAR:  added type <equ(byte[] ab1, int iO1, String js2, ...)>;
           |04.11.2007|r.j.TThread2: added <int getSIdPType(int iSId)>;
           |05.11.2007|r.j.srvReg: added <String getSDEName(srvReg oSReg, int iSId_, int iTId_)>
           |26.11.2007|r.j.a_Session: corrected method processTmr() just not to call tmr2 if session is closed;
0x00000163 |26.11.2007|  ----------------------------------------------------------------------------------------------------------------
          a|27.11.2007|r.j.TThread2: procDTBFifo() exception handler is fixed not to treat oDTB == null;
          b|27.11.2007|r.j.TThread2: <_preChkDTB(int iFifoId, DTB oDTB)> changed to <_preChkDTB(int iFifoId, DTB oDTB, boolean blEmptyQueues)>
          c|29.11.2007|r.j.a_Session: processTmr() - changed the sequence of call-back func. invokations from T1 then T2 to T2 then T1;
          d|01.12.2007|r.j.DTB: field lDstFifoPutTS is added; TThtrad2.postDTB() is changed to set the proper lDstFifoPutTS value;
           |          |r.j.TThread: added <void setDataFifoTempBlocked(long lTillTS)>; <void clrDataFifoTempBlocked()>
0x00000164 |02.12.2007|  ----------------------------------------------------------------------------------------------------------------
           |          |r.j.OPool.<constructor> reference oParent is added;
           |          |r.j.PRM: reference oParent is added;
          a|05.11.2007|r.j.gsm.GSM_0340: corrected bug in serialize on a data length > 160 bytes; corrected bug on error codes returned, sometimes positive values were returned;
          b|28.12.2007|r.j.TThread2: added:
           |          |  + public final boolean postDTB(FIFO[] af, int iFifoId, DTB oDTB, int iChkLoopTO, long lDstFifoGetTS);
           |          |  + private final int _postDTB(int iChkLoopTO, long lDstFifoGetTS, FIFO[] af, int iFifoId, DTB oDTB, int iSId, int iTId);
           |          |  + processing of <oDTB.lDstFifoGetTS> field is added;
           |          |  + public final boolean checkDst(int iChkLoopTO, int iSId, int iTId, int iFifoId);
           |          |r.j.DTB: field <lDstFifoGetTS> is added;
          c|29.12.2007|TThread2._postDTB() & TThread2.checkDst(): secting fifoId is changed to:
           |          |+   //-- -----------------------------------------
           |          |+   if((iFifoId < 0) || (iFifoId >= af.length)){
           |          |+    if(oDTB.blSDEReq){iFifoId = af.length;
           |          |+                }else{iFifoId = af.length - 1;
           |          |+   }}
           |          |+   if(iFifoId == 0){iFifoId = 1;} // highest priority;
           |          |+   iFifoId -= 1;
           |          |+   //-- -----------------------------------------
          d|          |TThread2.checkDst(): 'boolean blSDEReq' parameter added;
           |          |   + added  checkDstRsp(int iChkLoopTO, srvReg oSReg_, int iSId, int iTId, int iFifoId);
           |          |   + added  checkDstReq(int iChkLoopTO, srvReg oSReg_, int iSId, int iTId, int iFifoId);
           |          |   + removed checkDst(int iChkLoopTO, srvReg oSReg_, int iSId, int iTId, int iFifoId);
0x00000165 |29.12.2007|  ----------------------------------------------------------------------------------------------------------------
          a|29.12.2007|r.j.TThread2: added:
           |          |   + <private _getFifo()> - to unify fifo determinition;
           |          |   +  public final Object getDstSyncObjReq(int iSId, int iTId, int iFifoId);
           |          |   +  public final Object getDstSyncObjRsp(int iSId, int iTId, int iFifoId);
           |          |   +  public    final FIFO getDstFifoReq(srvReg oSReg_, int iSId, int iTId, int iFifoId);
           |          |   +  public    final FIFO getDstFifoRsp(srvReg oSReg_, int iSId, int iTId, int iFifoId);
           |          |   +  protected final FIFO getDstFifo(srvReg oSReg_, boolean blSDEReq, int iSId, int iTId, int iFifoId);
          b|01.01.2008|r.j.TThread2: added:
           |          |      public final boolean checkDstFifoReq(int iChkLoopTO, FIFO[] af, int iFifoId);
           |          |      public final boolean checkDstFifoRsp(int iChkLoopTO, FIFO[] af, int iFifoId);
           |          |      protected final boolean checkDstFifo(int iChkLoopTO, boolean blSDEReq, FIFO[] af, int iFifoId);
           |          |      public final FIFO getFifoReq(FIFO[] af, int iFifoId);
           |          |      public final FIFO getFifoRsp(FIFO[] af, int iFifoId);
          c|02.01.2008|r.j.TThread2: added:
           |          |protected final boolean checkDstFifo(int iChkLoopTO, boolean blSDEReq, int iFifoLevel, FIFO[] af, int iFifoId);
           |          |public final boolean checkDstReq(int iChkLoopTO, int iFifoLevel, int iSId, int iTId, int iFifoId);
           |          |public final boolean checkDstRsp(int iChkLoopTO, int iFifoLevel, int iSId, int iTId, int iFifoId);
          d|05.01.2008|r.j.TThread: added thread type:
           |          | + vars:
           |          |         <iTType>, <iUTType>
           |          | + methods:
           |          |            public final void    setTType(int iV);
           |          |            public final int     getTType();
           |          |            public final boolean equTType(int iV);
           |          |r.j.usrtmr: added into constructor setting of iTType to _ttype_eiTmr;
          e|11.01.2008|r.j.TThread2: for _checkDstFifo() added checking of previous fifo state;
           |          |          +   new iChkLoopTO modifier: '_cdf_eiCLTO_noModif';
          f|15.01.2008|r.j.a_Session: fixed create() method: on zero timers, it now does not tryes to create usrtmr threads;
          g|18.01.2008|r.j.STR: added <public static final void swap(STR s, int l);>
          h|19.01.2008|r.j.UTIL: added:
           |          |  + public final static int max(int v1, int v2);
           |          |  + public final static int min(int v1, int v2);
          i|19.02.2008|r.j.UTIL: added:
           |          |  + public final static STR iHex(int iVal, int iLen);
           |          |  + public final static STR iHex(int iVal, int iLen, byte bFiller);
           |          |r.j.BAR.iDec() fixed to put '-' to correct place for negative values;
          j|29.02.2008|r.j.PRM: double and float set added;
          h|11.03.2008|r.j.LOG: <void setGDebug(int iDbgLev)> added;
          i|13.03.2008|r.j.PRM: constructor for doubles added;
           |          |r.j.PRM: added methods:
           |          |         <boolean endsWith(STR sD, String jS, boolean blIgnoreCase)>
           |          |         <boolean startsWith(STR sD, String jS, boolean blIgnoreCase)>
0x00000166 |02.04.2008|  ----------------------------------------------------------------------------------------------------------------
          a|03.04.2008|r.j.BAR.iDec() fixed to put '-' to correct place for negative values;
0x00000167 |09.04.2008|  ----------------------------------------------------------------------------------------------------------------
           |          |APTT t_xcm support integration started;
          b|24.04.2008|MLP t_xcm support integration started;
          c|16.05.2008|FILE.L_DEF: added <void createIOBuf(int iSize_);>
          d|17.05.2008|a_session: management of deleted entries into deleted pool added:
           |          |   > a_Session.TSessEntry new methods added:
           |          |      +  boolean deleted();
           |          |      +  boolean active();
          e|18.05.2008|a_session: loadFromFile() added;
           |          |BIS: max stream to read size controll added:
           |          |      +  added <void init(InputStream oIS_, Object oPrnt_, long lMaxInSize_)>
           |          |a_session:
           |          |      + iHTSize = 1258300 now for a large config;
           |          |      + getHC_hex() changed to be more spread;
          f|20.05.2008|UTIL:
           |          |    + added   <boolean checkFlt(STR s_)>;
           |          |    + added   <boolean checkNDec(STR s_)> to accept '-';
           |          |    + changed <int getInt(STR s_, int radix_)> to accept negative values;
           |          |a_session: added:
           |          |      + HASH  getHTbl1();
           |          |      + HASH2 getHTbl2();
          g|22.05.2008|CFE: iCfgValLen_def parameter added, which is restored in setDV;
           |          |CF: comparison if the value length is switched to <iCfgValLen_def>;
          h|22.05.2008|BIS: bug in init (introduced in 167e) fixed;
0x00000168 |22.05.2008|  ----------------------------------------------------------------------------------------------------------------
          a|17.06.2008|a_Session: reference to parent session added:
           |          |   + <TSessEntry.wPrntClsInstId> var added;
           |          |   + <TSessEntry. a_Session getPrntSess()> method added;
           |10.07.2008|   + <TSessEntry.loadFromFile() is modified to return in oPEM.o1 the pure file name (without a path);
           |          |BIS: added method <Object getParent()>;
          b|16.07.2008|a_Session: small loggers syntax corrections:
          c|22.07.2008|   + added <boolean orgSE()>
           |23.07.2008|   + added conditional iPtr copying into copyV_SE();
          d|24.07.2008|UTIL: added <String jsGetDate(iFrmt_, iTV_);
0x00000169 |08.08.2008|  ----------------------------------------------------------------------------------------------------------------
          a|08.08.2008|srvReg: rtbi (Real Time Billing Interface) support added;
          b|13.08.2008|BAR. added <long getLong(byte[] ab, int iOff_, int iLen_, int radix_)>
          c|08.08.2008|a_Session: tiny & small configurations option added;
          d|05.09.2008|a_Session: saveToFile() started;
           |06.09.2008|BAR: return type void changed to int (next offset) for:
           |          | + int ass(byte[] abD_, int iPos_, byte[] abS_);
           |          | + int ass(byte[] abD_, int iPos_, byte[] abS_, int iBeg_, int iLen_);
           |          | + int ass(byte[] abD_, int iPos_, String jsS_, int iBeg_, int iLen_);
           |          | + int assFromHex(byte[] abD_, int iPos_, String jsS_, int iBeg_, int iLen_);
           |          | + int wSet(byte[] abD_, int iPos_, int iVal_);
           |          | + int iSet(byte[] abD_, int iPos_, int iVal_);
           |          | + int lSet(byte[] abD_, int iPos_, long lVal_);
           |          | + int lSet5(byte[] abD_, int iPos_, long lVal_);
           |          | + int lSet5(byte[] abD_, int iPos_, long lVal_);
           |          | + ---> means re-compiling needed;
           |          | a_Session: std config Hash tbl increased to 132000 == 17 bit;
           |          |      +   : added TSessEntry.getSessOptions() method;
           |          |      +   : added <int deleteSEbyKey(int iKId, TSessEntry _key_oTSE, boolean blForce)>;
           |08.09.2008| UTIL: added:
           |          |      <long getLong(STR s_, int radix_);>
          e|13.09.2008| a_Session: saveToFile() callback functions names modified; _synIO_
          f|14.09.2008| PRM: xRV added;
          g|14.09.2008| BAR: return type void changed to int (next offset) for:
           |          |     + int assToHex(byte[] abD_, int iPos_, String jsS_, int iBeg_, int iLen_);
          h|18.09.2008| a_Session:
           |          |      +   : added <getNextSEIdx(int iPrevIdx);>
           |          |      +   : added <void print(); void print(boolean blAll);>
          i|22.09.2008| BAR:
           |          |   + added <boolean checkAsciiChars(byte[] abS_, int iSO_, int iSL_)>
           |          | STR:
           |          |   + added <boolean checkAsciiChars(STR s_)>
          j|24.09.2008| BAR:
           |          |   + added <void toUpper(byte ab, int iO, int iL)>
           |          |   + added <void toLower(byte ab, int iO, int iL)>
          k|03.10.2008| a_Session:
           |          |   + persistent functionality (DB mode) started;
          l|10.10.2008| a_Session:
           |          |   + persistent functionality (DB mode) continued;
           |19.10.2008| FILE, AFile;
           |          |   + some synchronized method modifiers removed;
0x00000170 |20.10.2008|  ----------------------------------------------------------------------------------------------------------------
          a|27.10.2008| a_Session:
           |          |   + 1-st DBmode release;
          b|02.11.2008|   + _loadFromFile(PRM oPRM, ...) oPRM iErrToAdd added;
          c|02.11.2008|   + insert(); delete() for DBMode fixed to update recored and automatic _setDirtyFlg();
          d|04.12.2008| srvReg: added field <eiSDE_PT_ldapConn = 8;>
          e|22.12.2008| IntPool: added method <void a_init();>
          f|25.12.2008| TThread2._getSReg(srvReg oSReg_) fixed bug to return null when thread is stopped;
          g|27.02.2009| r.crypto.algos package added with two new functions:
           |          | - encodeB64(..) and decodeB64(...);
          h|29.03.2009| r.crypto.CRC package added with two new functions:
           |          | - int getCRC32_ISO3309(int iIV, byte bV);
           |          | - int getCRC32_RFC3309(int iIV, byte bV);
           |          | r.j.BAR: added new sub-class BAR_DESC;
           |          | r.j.FILE: <f0Set(long lP_)> method added;
          i|09.05.2009| r.j.BAR.BAR_DESC: <iCmd> field added;
           |12.05.2009| r.j.BAR.BAR_DESC: setX() method added;
          j|21.06.2009| r.j.FILE: methods added;
           |          |    + <static final int load(byte[] abD, int iDOff, String jsFName);>
           |          |    + <static final int load(byte[] abD, int iDOff, String jsFName, BIS oBIS_);>
          k|28.06.2009| r.j.BAR.BAR_DESC: <iOp, iAttr, {ab5}, {ab6}> fields added;
           |29.06.2009| r.j.PRM: extended by 11-15 items + iCmd, iOp, iErrCode, jsErrDesc;
          l|03.07.2009| r.j.UTIL: added: ghi<1-4>(String js, int iOff);
           |          | r.j.BAR:  added <endsWith(...)>;
          m|05.07.2009| r.j.BAR.BAR_DESC: added fields (iV1-iV6; lV1-lV6);
          n|18.08.2009| r.j.BOS.init(...): return val. changed from 'void' to 'BOS';
           |          | r.j.BIS.init(...): return val. changed from 'void' to 'BIS';
          o|22.08.2009| r.j.STR.instring(s, s): replacaed to call qInstring(s,s,i);
           |01.09.2009| r.j.a_Session: changed:
           |01.09.2009|   + method <void closeDB(int iWaitTO_sec)> to use 'iWaitTO_sec)' parameter;
           |04.09.2009|   + field access for <elDateOff> changed from private to protected;
          p|16.09.2009| r.j.BAR: method <byte[] swaN(byte[] abS)> added;
          q|08.10.2009| r.j.a_Session: getHTSize() added;
           |10.10.2009| r.j.a_Session: option <_opt_eiMinLog> and method <setMinLog(boolean blSet_)> added;
          r|15.10.2009| r.j.BAR: <chkChars()> method added;
           |19.10.2009| r.j.BIS;BOS: method <isClosed()> added;
          s|23.01.2010| r.j.BAR: methods added: <instringT(...), abs()..., abhs(...), bhs(...)>;
           |          | r.j.UTIL.jsGetDate(): <_gdf_ddmmyy_noSP> added;
          t|08.02.2010| r.j.BAR: methods added: <lDec(long lV, ...)>;
           |          | r.j.UTIL.jsGetDate(): <_gdf_ddmmyy_yyyyss_f2> added;
          u|12.04.2010| r.j.BAOS: class added;
           |14.04.2010| r.j.FILE: methods added:
           |          |   + <int save(String jsFName, BAOS oBAOS);>
           |          |   + <int save(String jsFName, BAOS oBAOS, int iMode);>
           |29.04.2010| r.j.BAR.BAR_DESC: oPRM field added;
          v|30.05.2010| r.j.CF: <@begin_prefix, @end_prefix pragma> added;
           |          |   + in method <includeAS()> block #blk0001# commented out;
           |06.06.2010| r.j.a_Session: methods added:
           |          |   + <boolean isDBLoaded();>
           |          |   + <int     getDBTotRcds();>
           |09.06.2010| r.j.FrameEventProcessor, added <MouseWheelListener>;
           |12.06.2010| r.j.BAR.equ(byte[] ab1, int iO1, byte[] ab2, int iO2, int iL), "//[mod.0001]"
           |          |   + added additional checks for the in params, that returns false;
          x|04.07.2010| r.j.CF: <@begin_prefix>: fixed bug with '#' comment inside prefix body;
           |11.07.2010| r.j.srvReg: method <__find()>:  added pointer 'p' randomization based on LOG.lSysTime;
          y|16.07.2010| PRM: added iP16-iP50;
          z|23.08.2010| BAR.BAR_DESC: added iV7-iV10; lV7-lV10;
           |12.09.2010| r.j.STR.Array: some instance methods added: add, del...;
           |24.09.2010| r.j.STR: method <getItems(byte[] abOrg, ...)>:
           |          |   + ###Correction 24092010###; --> scan up the delimiter;
           |24.09.2010| r.j.UTIL.Queue: methods<put, add)>: checking for null Object is turned off;
           |25.09.2010| r.j.STR: method <at()>: Position value control added;
0x00000171 |21.10.2010|  ----------------------------------------------------------------------------------------------------------------
          a|21.10.2010| r.j.BAR: methods added:
           |          |   +  <ass(byte[] abD_, int iPos_, String jsS_);>
           |          |   +  ---
           |          |   +  <toUTF16(byte[] abD_, int iPos_, String jsS_);>
           |          |   +  <toUTF16(boolean blAppend, byte[] abD_, int iPos_, String jsS_);>
           |          |   +  <toUTF16(byte[] abD_, int iPos_, String jsS_, int iBeg_, int iLen_);>
           |          |   +  <toUTF16(boolean blAppend, byte[] abD_, int iPos_, String jsS_, int iBeg_, int iLen_);>
          b|30.10.2010| r.j.crypto.CRC: methods added:
           |          |   +  <getCRC32_ISO3309(String js);>
           |          |   +  <getCRC32_ISO3309(int iIV, String js);>
           |          |   +  <getCRC32_ISO3309(int iIV, String js, int iO, int iL);>
           |          | r.j.UTIL: methods added:
           |          |   +  <int ghi<1-4>(String js);>
           |          |   +  <long ghl8(String js);>
           |          |   +  <long ghl8(String js, int iOff);>
          c|13.11.2010| r.j.<toUTF16> bug on empty String corrected;
          d|13.11.2010| r.j.<abHash12> is made not final;
           |15.11.2010| r.j.<abHash12.jsHashName> is made protected;
          e|28.10.2010| r.j.BAR: methods added:
           |          |   +  <toUTF16(boolean blAppend, byte[] abD_, int iPos_, byte[] abS_, int iBeg_, int iLen_);>
          f|02.11.2010| r.j.a_cfgSimple() class added;
           |03.11.2010| r.j.UTIL.jsGetDate(): new format <_gdf_yyyymm> added;
           |09.11.2010| r.j.UTIL.lDec(long lVal, int iLen, byte bFiller) added;
           |25.12.2010| r.j.STR.cmpVal(String jsA_, String jsB_) added;
          g|27.01.2011| r.j.BAR: added constructor <BAR_DESC(PRM oPRM_)>;
          h|29.01.2011| r.j.crypto.CRC: added methods:
           |          |   + <long getCRC64(...))>
           |          |   + <long getCRC64(String js, ...)>
           |          |   + <int getXOR2x2(long lIV)>, <int getXOR4x4(long lIV)>
           |          |   + <int getXOR10bit(long lIV)>
           |18.02.2011| r.j.UTIL:    added method <String getStackTraceString(Throwable ex, int iMaxItems)>
           |18.03.2011| r.j.TThread: added vars iThrDbg(1-4);
          i|05.04.2011| new classes: <r.j.rjConst> & <abSimpleHT>;
           |          |   + minor changes to <a_session.java> to support abSimpleHT usage:
           |          |     + <min_log> usege extended for create() and clear();
           |          |     + <iHachCode> copy added for get...() functions and insert();
           |12.04.2011| r.j.PRM: added <byte[] ab1-15> & <int[] ai1-15>;
          j|16.04.2011| r.j.CF: added <CFE getCFEbyName(CFE[] aoCFEL, String jsPfx_, String jsName_)>
           |          | r.j.CF: changed <reset()>--> setDN() call added;
           |          | r.j.CFE: added:
           |          |   + <CFE getCFEbyName(CFE[] aoCFEL, String jsPfx_, String jsName_)>
           |          |   + <void setDN()>;
           |          |   + <void setN(...)>;
           |          |   + <STR getPureName(String jsPfx_)>
           |18.04.2011| r.j.STR: added:
           |          |     <boolean endsWith(STR sD, STR sS, boolean blIgnoreCase)>
           |21.04.2011| r.j.BAR: changed:
           |          |   +       <boolean equ(byte[] ab1, int iO1, String js2);>
           |          |   +          to
           |          |   +       <boolean equ(boolean blIgnoreCase, byte[] ab1, int iO1, String js2);>
          k|02.05.2011| r.j.abSimpleHT(): added <synchronized(this)> for insert in addRCD() method;
          l|<skipped> |
          m|30.05.2011| r.j.BAR: added:
           |          |     <static byte[]  new_chAr(STR sValue);>
           |31.05.2011| r.j.BOS: vars made volatile, added methods:
           |          |   + <void writeASCII(byte[] abS);>
           |01.06.2011|   + <void write(String jsS, ...);>
           |          |   + <OutputStream getOS();>
           |          |   + <void reset();>
           |03.06.2011| r.j.BIS: vars made volatile, added methods:
           |          |   + <void reset();>
           |          | r.j.BAOS: vars made volatile;
0x00000172 |10.06.2011|  ----------------------------------------------------------------------------------------------------------------
          a|10.06.2011| r.j.tblmath package started:
           |          | r.j.tblmath.SIN class;
           |11.06.2011| r.j.tblmath.COS class;
           |          | r.j.UTIL: added methods:
           |          |    + <int sqrt(int iV);>
           |          |    + <long sqrt(long iV);>
          b|18.06.2011| r.j.tblmath package is temporaly turned off;
          c|20.07.2011| r.j.abSimpleHT: added method:
           |          |      <int setSEBuf(SE oSEBuf_, int iFlags_, byte[] abOBJ1_, int iOBJ1Off_, int iOBJ1Len_, byte[] abOBJ2_, int iOBJ2Off_, int iOBJ2Len_)>
           |          | r.j.abSimpleHT: <blGDebug2> var added;
           |26.08.2011| r.j.BOS: added methods:
           |          |      <long getTotLen()>
           |          |      <void setCalcCRC_ISO3309()>
           |          |      <void clrCalcCRC_ISO3309()>
           |          |      <int  getCRC_ISO3309()>
           |26.08.2011| r.j.BOOS: class added;
        d-e|31.08.2011| r.j.BOOS: for <close()> method added auto-flush() if data remains;
        f-g|16.09.2011| r.j.UTIL: for <jsGetDate()> new formats (6 & 7) added;
          h|17.09.2011| r.j.BAR: <assToHex()> for String is added;
           |          | r.j.STR: added method <boolean endsWith(String jsD, String jS, boolean blIgnoreCase)>
          i|16.10.2011| r.j.UTIL: added method <boolean checkHexStrict(String js_)>
           |          | r.j.STR:  added method <boolean endsWith(STR sD, byte[] abS, int iSO, int iSL)>
           |          | r.j.BAR:  added methods:
           |27.10.2011|   + <boolean startsWithIC(byte[] abD, int iDO, int iDMaxLen, String jS)>
           |          |   + <boolean endsWithIC(byte[] abD, int iDO, int iDMaxLen, String jS)>
          j|03.11.2011| r.j.UTIL: bug with BAR.equ(..., String js_)> - introduced in 171j(21.04.2011);
          k|03.01.2012| r.j.EVENT.GC const added;
          l|          | version number skipped;
          m|22.01.2012| r.j.BAR.BAR_DESC: field <blPermErr> added;
          n|03.03.2012| r.j.abATFile.java class created;
           |04.03.2012| r.j.a_Session: <static int htSizer(int iSMaxSize_)> added;
           |          | r.j.crypto.CRC: <getCRC64(long lIV, byte[] ab, int iO, int iL)> added;
           |09.03.2012| r.j.MUTEX: added: <boolean get2()>; <boolean ret2()>; <ret2(boolean blMtx_)>;
          o|10.03.2012| r.j.UTIL.Queue: removed <sinchronized> at method level for
           |          | {empty(UTIL.Queue qA_); pop(UTIL.Queue qA_); wipe(UTIL.Queue qA_, int iPnt_);  wipe(UTIL.Queue qA_, Object oB_);}
0x00000173 |09.05.2012|  ----------------------------------------------------------------------------------------------------------------
          a|09.05.2012| r.j.DTB: field <iPtr> added; this field is initialized in OPool;
           |          |      +   field <oThr> added;
           |          | r.j.OPool: changed checking element length: was 1 min, now 0 min;
           |          |     + conctructor: <OPool(int iSPSize_, int iType_, String jsPN_)> -> element sizeisset to 0;
           |          | r.j.srvReg: __find() method changed to find SID_sync;
          b|13.07.2012| r.j.crypto.CRC: added methods:
           |          |     + <int getCRC32_ISO3309(long lV)>; <int getCRC32_ISO3309(int iIV, long lV);>
           |          |     + <int getCRC32_ISO3309(int iV)>;  <int getCRC32_ISO3309(int iIV, int iV);>
           |          |     + <int getCRC32_RFC3309(long lV)>; <int getCRC32_RFC3309(int iIV, long lV);>
           |          |     + <int getCRC32_RFC3309(int iV)>;  <int getCRC32_RFC3309(int iIV, int iV);>
           |          | r.j.crypto.CFE: added constructor:
           |          |       <public CFE(String jsN, byte[] abDV_, int iFlg)>
          c|01.08.2012| r.j.BAIS class added methods.
          d|21.01.2013| r.j.dateU{} class added;
          e|22.01.2013| r.j.abSimpleHT: added method String supporting functions:
           |          |      <int addRCD(SE     oSEBuf_, int    iFlags_, String jsOBJx_)>
           |          |      <int addRCD(SE     oSEBuf_, int    iFlags_, String jsOBJ1_, int iOBJ1Off_, int iOBJ1Len_, String jsOBJ2_, int iOBJ2Off_, int iOBJ2Len_)>
           |          |      <int delRCD(abSimpleHT.SE oSEBuf_, String jsOBJx_, ...)>
          f|26.01.2013| r.j.UTIL:
           |          |     + added new date format type <_gdf_yyyymmddss_noSpace_f2>;
          g|28.04.2013| r.j.abHash12: String (ASCII) Key type methods added;
           |29.04.2013| r.j.UTIL: for jsGetDate(), new formatter - <_gdf_dmy4_hms_psc> added;
           |30.04.2013| r.j.PRM: field <jsCaller> added;
          h|23.08.2013| r.j.abSimpleHT: added method String supporting functions:
           |          |      <int getRCD(abSimpleHT.SE oSEBuf_, String jsOBJx_);
           |          |      <int getRCD(abSimpleHT.SE oSEBuf_, int iKId_, String jsOBJx_, int iOBJxOff_, int iOBJxLen_)>
          i|23.09.2013| <r.j.a_abHashXX> class added;
           |          | r.j.abHash12: rewritten to use r.j.a_abHashXX;
           |          | r.j.crypto.CRC: added set of methods: <getCRC64_asc(..., String js, ...)>
           |          | r.j.abHash18: new class created;
          j|06.01.2014| <r.j.BAR> added checkHex...() for input param for methods:
           |          |    <byte[] new_ar(String jsHexValue)>
           |          |    <boolean checkHex(byte[] ab, int iO, int l)>
          k|04.02.2014| <r.j.STR>.abDos861_Win1251 table fixed in last 16 chars;
           |          | <r.j.UniMap>.axDos0866_Uni0400 table added;
          l|08.03.2014| <r.j.STR>.getItems(STR s, STR[] ASP) fixed to correctly process ":" delimeter.
           |16.03.2014| <r.j.BAR> added method  <void repChars(byte bRepChar_, byte[] abChars, byte[] abD_, int iO_, int iL_);>
           |05.04.2014| <r.j.SDE> added const <eiSDE_PT_usrDefConnBase>;
          m|07.05.2014| <r.j.a_abHashXX & abHash18>:
           |          |      +  <getHashCode0()> & <getHashCode0_asc()> added to a_abHashXX class;
           |          |      + in <abHash18> {getHashCode() and getHashCode_asc(} are set to use <a_abHashXX.getHashCode0() or getHashCode0_asc()>;
           |          | <r.j.abHashXX> class added;
           |21.05.2014| <r.j.UTIL>: added:
           |          |      + String[] getItems(String jsOrg, int iMaxItems, char cSeparator, char cEscChar);
           |          |      + String[] getItems(String jsOrg, PRM[] ap_, char cSeparator, char cEscChar);
           |          |      + int      getItems(String jsOrg, int iOrgOff, int iOrgLen, PRM[] ap_, char cSeparator, char cEscChar);
          n|23.05.2014| <r.j.UTIL>: bug in <int getItems(...) fixed;
          o|27.08.2014| <r.j.jsObjHTXX> created;
           |          | <r.j.crypto.CRC>: added <long getCRC64_ascic(String js)>
           |          | <r.j.ObjHE>: added type <eiKT_StringIC>;
          p|28.08.2014| <r.j.jsObjHTXX.crSELest()>: sorting is removed;
           |02.09.2014| <r.j.SYNC_DTB_CTX>: class created;
          q|05.11.2014| <r.j.CFE>: exception in <toString> if ab type fixed;
           |          | <r.j.CF>: .parsing(): T_ab processing added;
          r|20.04.2015| <r.j.UTIL.MessageBox>: dispose() bug fixing on oMB == null;
          s|29.04.2015| <r.j.FrameEventProcessor>: added <void actionPerformed(ActionEvent Evnt)>
           |          |                          + changed _debug_ to LOG.dbgL_d2(LOG.iGDebug);
           |          | <r.j.EVENT>: added EVENT.BtnPressed;
          t|23.08.2015| <r.j.SrvReg>: added <getSIdByName(String jsSName_)>
           |          | <r.j.STR>: added <boolean startsWith(String jD, String jS, int iLen_, boolean blIgnoreCase)>
           |02.09.2015| <r.j.TThread2>: FIX:#0001: added flag: <a_CONNECTION._flg_eiOpEnd>
           |16.09.2015| <r.j.OPool>: added field <blDisAllocErrPrinting>
           |06.10.2015| <r.j.FILE>: added method <int load(byte[] abD, int iDOff, File oF_, BIS oBIS_)>
          u|08.10.2015| <r.j.FILE>: fixed method save(...) --> added append mode;
          v|10.10.2015| <r.j.UTIL>: added method <int scanlfs( ... );>
           |16.10.2015| <r.j.FILE>: added methods for LV files:<lv_XXX();>
           |18.10.2015| <r.j.FILE>: corrected a bug for enter() on zero file length - it was not opened;
           |19.10.2015| <r.j.BIS>:  added methods for LV streams processing: <readLV(), readLV1();>
           |20.10.2015| <r.j.UniMap>: added method: <int fromUni2(int i_, int[] ai_)>
          w|31.10.2015| <r.j.FILE>: fixed method for LV files:<lv_read1();>
           |18.11.2015| <r.j.FILE>: added <bug_fix_0002> to method load(,,BIS) - checks loaded length vs initial file length;
          x|24.03.2016| <r.j.crypto.algos>: added <int decodeB64(byte[] abD, int iDOff, final CharSequence jsS);>
          y|29.03.2016| <r.j.jsObjHTXX>: added field blExtSEUsed and new constructor. Modified methods: print2(), printSEList();
          z|30.06.2016| <r.j.FILE>: LV_DEF{}: File "preamble" feature added; changed methods <lv_put(LV_DEF oLVDef)>, <_lv_read(LV_DEF oLVDef)>;
           |01.07.2016| <r.j.FILE:  BIS{}: "preamble" feature processing added;  changed method - <readLV(byte[] ab, int iOff, int iMaxLen)>;
0x00000174 |04.08.2016|  ----------------------------------------------------------------------------------------------------------------
          a|04.08.2016| <r.j.PRM>: field <int iPrmVer> added;
           |05.08.2016| <r.j.LOG>: field <long lNanoTime> added;
          b|11.08.2016| <r.j.BAR>: added:
           |          |  +  <wSet_le(byte[] abD_, int iPos_, int iVal_)>
           |          |  +  <iSet3_le(byte[] abD_, int iPos_, int iVal_)>
           |          |  +  <iSet_le(bywSet_le(_, int iPos_, int iVal_)>
           |          |  +  <lSet_le(byte[] abD_, int iPos_, long lVal_)>
           |          |  +  <getLong_le(byte[] ab, int iOff)>
           |          |  +  <getInt_le(byte[] ab, int iOff)>
           |          |  +  <getInt3_le(byte[] ab, int iOff)>
           |          |  +  <getInt2_le(byte[] ab, int iOff)>
           |12.08.2016| <r.j.UTIL>: <sendSktReq(...)> method added;
           |12.08.2016| <r.j.BAR>: <assFromHex(byte[] abD_, int iPos_, String jsS_)> method added;
           |26.08.2016| <r.j.BAR.BAR_DESC>: {blV1-blV10, blRV, iType> fields added;
           |28.08.2016| <r.j.crypto.algos>: <decodeB64()> method optimized - using <abRevB64> instead of <_getPos()>.
           |          | <r.j.BAR>: added <int getFromJsonStr_asc(...)> method;
           |05.09.2016| <r.j.crypto.algos>: added <int encodeB64(byte[] abD, int iDOff, BAR.BAR_DESC[] aoBD, int iBDOff, int iBDLen)>
           |04.09.2016| <r.j.crypto.algos>: added <int encodeUTF8(boolean blBOM, byte[] abD, int iDOff, byte[]aoS, int iSOff, int iSLen)>
           |06.09.2016| <r.j.crypto.algos>: added <int encodeUTF8_B64(boolean blBOM, byte[] abD, int iDOff, byte[]aoS, int iSOff, int iSLen)>
           |11.09.2016| <r.j.BAR>: added:
           |          |  + <int lDec(long lInV_, byte[] abOut, int iO_)>
           |          |  + <int lDec(long lInV_, byte[] abOut, int iO_, int iMaxL_)>
           |20.09.2016| <r.j.TPool>: class added;
           |21.09.2016| <r.j.TFIFO>: class added;
           |25.09.2016| <r.j.abATFile>: <void print2(iMaxPrintNum)> added;
           |03.10.2016| <r.j.crypto.algos>: added <int getUTF8Len(boolean blAddBOM, char[] acS, int iSOff, int iSLen)>
          c|15.11.2016| <r.j.crypto.algos>: added:<int encodeUTF8_LE(byte[] abD, int iDOff, byte[] abS, int iSOff, int iSLen);
           |          |                        +   int encodeUTF8_LE(boolean blAddBOM, byte[] abD, int iDOff, byte[] abS, int iSOff, int iSLen);
           |          |                        +   int encodeUTF8_BE(byte[] abD, int iDOff, byte[] abS, int iSOff, int iSLen);
           |          |                        +   int encodeUTF8_BE(boolean blAddBOM, byte[] abD, int iDOff, byte[] abS, int iSOff, int iSLen);
           |          |                           >
          d|08.12.2016| <r.j.crypto.algos>: added:<int encodeUTF8(OutputStream oOS, String jsS) throws IOException;
           |          |                        +   int encodeUTF8(OutputStream oOS, String jsS, int iSOff, int iSLen) throws IOException; SLen);
           |          |                           >
          e|08.12.2016| <r.j.crypto.algos>: buf fixing:<int encodeUTF8(OutputStream oOS, String jsS) throws IOException;
           |          |                             +   int encodeUTF8(OutputStream oOS, String jsS, int iSOff, int iSLen) throws IOException; SLen);
           |          |                           >
          d|17.01.2017| <r.j.a_abHashXX>: added <toString()> method;
           |18.01.2017| <r.j.a_abHashXX>: added <print2(...)> method;
           |19.01.2017| <r.j.a_abHashXX>: added:<Object get(STR s)>
           |          |                      +  <Object getObjHE(STR s)>;
           |          |                      +  <String ObjHEtoString(int iCnt, ObjHE 0HE)>;
           |          | <r.j.extLogger>: interface changed to <void extLog(boolean blLogTS, String js)>
           |          | <r.j.rjlog>:     added <void logNT(String js>;
           |20.01.2017| <r.j.a_abHashXX>: added:<int scan(_scan_CALLBACK oCB)>
          e|17.02.2017| <r.j.crypto.algos>: added:<int decodeB64_try(...);
          f|27.02.2017| <r.j.crypto.algos>: <int decodeB64_try(...)> placed after decodeB64();
          g|14.03.2017| <r.j.CF>: added:
           |          |               +  <boolean parseCLine0(STR sIn, int p_, STR[] asP_)>;
           |          |               +  <boolean parseCLine0(CFE o_blActive, STR sIn, int p_, STR[] asP_)>;
0x00000175 |17.04.2017|  ----------------------------------------------------------------------------------------------------------------
          a|17.04.2017| <r.j.DTBPool>: DSize setting added, var names changed;
          b|01.05.2017| <r.j.JSON>: class added;
          c|16.05.2017| <r.j.dateU>: added method <void getDateTime_sec(PRM oPRM, int iDateTime_sec)>
          d|06.06.2017| <r.j.a_cfgSimple()>: iSize bug corrected.
          e|18.06.2017| <r.j.crypto.algos>: added:
           |          |     + <static int encodeUTF8(byte[] abD, int iDOff, String jsS)>
           |          |     + <static int encodeUTF8(byte[] abD, int iDOff, String jsS, int iSOff, int iSLen)>
           |          |     + <static int encodeUTF8(boolean blAddBOM, byte[] abD, int iDOff, char[] acS, int iSOff, int iSLen)>
           |          |     + <static int getUTF8Len(boolean blAddBOM, String jsS, int iSOff, int iSLen)>
           |          |     + <static int getUTF8Len(String jsS)>
           |19.06.2017| <r.j.JSON>: added:
           |          |     + <boolean getJsonArValue(...)>
           |20.06.2017|     + <boolean getNextObject(BAR.BAR_DESC oBDRslt, String jsSrvName, String jsFN, boolean blPrint);>
           |          |     + <void resetArrayIterrator(BAR.BAR_DESC oBDRslt)>
           |21.06.2017| <r.j.crypto.algos>: added:
           |          |       <int  getUCS2LenFromUTF8(...)>
           |10.07.2017| <r.j.BAR>: added:
           |          |       <int clipRSP(byte[] abS, int iSOff, int iSLen)>
          f|13.07.2017| <r.j.crypto.algos>: added:
           |          |     + <int encodeB64url(boolean blPadding, byte[] abD, int iDOff, byte[] abS, int iSOff, int iSLen)>
           |17.07.2017| <r.j.BAR>: added:
           |          |       <void replaceSubs(boolean blEQUIC,
           |          |                         byte bRepByte_, byte[] abSubS_, int iSubSO_, int iSubSL_,
           |          |                                         byte[] abS_, int iSO_, int iSL_)>
           |          | <r.j.crypto.algos>: added:
           |          |       <byte[] ldPrKeyFile(String jsCaller, String jsPrKeyFName)>
           |23.07.2017| <r.j.BAR>: added:
           |          |       <boolean equ(byte[] ab1, int iO1, byte[] ab2)>
           |          |       <int instring(byte[] ab1, int iO1, int iL1, byte[] ab2)>
           |29.07.2017| <r.j.CF>: added:
           |          |       <static CFE[] addCFEList(CFE[] aoCFEL_target, CFE[] aoCFEL_addon)>
           |06.08.2017| <r.j.BAR>: added:
           |          |       <int instringic(byte[] ab1, int iO1, int iL1, byte[] ab2)>
           |          |       <int instring(boolean blEQUIC, byte[] ab1, int iO1, int iL1, byte[] ab2, int iO2, int iL)>
           |15.08.2017| <r.j.CF>: added:
           |          |       <void clrPrint()>
           |          |       <void clrPrint(CFE[] aoCFEL)>
           |19.08.2017| <TThread2>: added:
           |          |       <boolean checkDstReq(int iChkLoopTO, srvReq oSReg_, int iSId, int iTId)>
           |27.08.2017| <r.j.dateU>: added methods:
           |          |       <long getDateTime_sec(int iDateTime_sec)> //-- with time zone;
           |          |       <long getDateTime_sec0(int iDateTime_sec)>
           |          |       <int getYear(long lDT_f)>
           |          |       <int getMonth(long lDT_f)>
           |          |       <int getDoM(long lDT_f)>
           |          |       <int getHour(long lDT_f)>
           |          |       <int getMin(long lDT_f)>
           |          |       <int getSec(long lDT_f)>
           |10.09.2017| <r.j.STR>: added <byte at(iPos_)>
          g|12.09.2017| <r.j.UTIL>: <String abToString(byte[] abMS, int iOff, int iLen)> implementation changed;
           |25.09.2017| <r.j.STR>: added:
           |          |       <boolean equ(String jstr1_, int iO1_, String jstr2_);>
           |          |       <boolean equic(boolean blIC_, String jstr1_, int iO1_, String jstr2_);>
           |28.09.2017| <r.j.BAR>: added:
           |          |       <byte[] new_ar(byte[] abChars, byte[] abHexValue, int iHVOff, int iHVLen);>
           |          | <r.j.dateU>: added <long set(..)> methods;
           |          | <r.j.UTIL>: added:
           |          |       <int getInt(String js_, int iPos_, int iLen_, int radix_)>
           |28.09.2017| <r.j.dateU>: added:
           |          | <void getDateTime0_sec(PRM oPRM, int iDateTime_sec)>
           |12.10.2017| <UTF8_RD_WRAPPER>: add definition of <CALLBACK_UTF8_RD_WRAPPER>;
           |25.10.2017| <r.j.STR>: ___ass_asc_utf8(STR str1_, String jStr);
           |26.10.2017| <r.j.STR>: added:
           |          |     + <boolean equ(String str2_)>
           |          |     + <boolean equic(String jstr2_)>
           |          |     + <boolean equic(STR str2_)>
           |          |     + <boolean equ(STR str2_)>
           |27.10.2017| <TThread>: <blThrBusy> field added;
           |07.11.2017| <UTIL>: method <long getIP_asLong(String jsIPAddr_)> added;
           |24.11.2017| <r.j.crypto.algos>: added:
           |          |     + <byte[] ldB64File(String jsCaller, String jsFName_);>
           |11.12.2017| <r.j.BAR>: added:
           |          |     + <int toUTF16(byte[] abD_, int iPos_, char[] acS_, int iBeg_, int iLen_)>
           |          |     + <int toUTF16(boolean blAppend, byte[] abD_, int iPos_, char[] acS_, int iBeg_, int iLen_)>
          h|13.12.2017| <TThread2>: <_postDTB()> added printing on syncDispatch errors;
           |          | <srvReg>: <find()> changed algo for sync destination lookup;
          i|08.01.2018| <r.j.UTIL>: added:
           |          |     + <boolean checkDec(String js_)>
           |          |     + <boolean checkXDec(String js_, boolean blCheckNeg)>
           |07.02.2018| <r.j.UTIL>: added:
           |          |     + <long getLong(String js_, int radix_)>
           |          |     + <long getLong(String js_, int iPos_, int iLen_, int radix_)>
           |          | <r.j.FILE>: added <blChkPreamble> field; used in BIS class;
           |13.02.2018| <TThread>: <boolean getStatInfo(PRM oPRM)> method added;
           |26.02.2018| <TThread>: <boolean doAction(PRM oPRM)> method added;
           |06.03.2018| <BAR>: <int getInt() '-' sign processing added;
           |          | <JSON>: <getJsonValue()  '-' sign for numeric values processing added;
           |29.03.2018| <httpClt>: added method: <sendHttpReq(...)>
           |05.05.2018| <UTIL>: sendSktReq(): logging for ascii data added;
           |          | <BAR>: <checkAsciiChars2()> method added;
          g|19.06.2018| r.crypto.algos package added with functions:
           |          |        <int clipUTF8(int iNewCharLen, byte[] abS, int iSOff, int iSLen)>
           |01.08.2018|        <int decodeB64url(byte[] abD, int iDOff, byte[] abS, int iSOff, int iSLen)>
           |11.08.2018| <NAMES_MUTEX_TBL> class added;
           |19.08.2018| <BAR>: <ass(byte[] abD_, int iPos_, STR s)> method added;
           |10.01.2019| <httpClt>: added method: 44c [<sendHttpReq(...)>]
           |01.04.2019| <UTIL>: Queue: adding methods:
           |          |        <Object get(int iIndx_)>
           |          |        <Object get0(int iPtr_)>
           |          |        <Object[] getQueue()>
           |          |        <int getSize()>
           |          |        <Object last()>
          h|03.04.2019| r.j.BAR.iDec(int iInV_, byte[] abOut, int iO_) fixed forlarge negative values;
          i|14.05.2019| <httpClt>: added method: <CONN_PRM setPingUriAndHdrs(String js)>
           |          |          + modified sendHttpReq() --> abRspBuf can be null --> invokes consume rsp;
          j|20.07.2019| <httpClt>: added support for a chunked response;
          h|24.07.2019| <httpClt>: added SSL support;
          i|01.08.2019| <CFE,CF>:  added `0x...` way of prm setting for String and STR;
           |05.08.2019| <BAR>: added methods:
           |          |    + boolean equicl(byte[] ab1, int iO1, int iL1, String js2);
           |          |    + boolean equl(byte[] ab1, int iO1, int iL1, String js2);
          m|27.09.2019| <r.j.TFIFO>: method <int getSnapshot(T[] aoDst_)> added;
           |01.10.2019| <abDataHT> class added;
           |04.10.2019| <_Session> method <_ilogerr(jsCaller, ....) added;>
           |09.10.2019| <_Session> method <int getTotKeys() added;>
           |05.11.2019| <httpClt>: fixed <consumeRsp(...)> method for a chunked response;
           |          |      + httpClt.HTTPCLT_CFG() def. constructor changed;
           |          |      + httpClt.HTTPCLT_CFG(): removed "Http..." prefix from params names;
           |          |      + httpClt.HTTPCLT_CFG(): added methos <boolean copyCFG(HTTPCLT_CFG oCFG_S)>;
          n|29.11.2019| <TQueue2> class added;
          o|05.12.2019| <STR>: added new method: <int getInt(String js_, int radix_)>
           |19.02.2020| <UTIL>: added new method:
           |          |      + <int sendSktReq(String jsCaller, String jsCAT_, String jsHost, int iPort, long lWait_TO,
           |          |                        byte[] abReq, int iReqOff, int iReqLen,
           |          |                        byte[] abRsp, int iRspOff, int iRspMaxLen)>
           |27.02.2020| <rjlog>: added new method: <logT(String js)>;
           |06.03.2020| <STR>: renamed <public getItems()> to <private _getItems())>;
           |          |        + added <public getItems2()>;
           |06.04.2020| <UTIL>: added new method:
           |          |      + <void lDecXP(long lV, STR s, int iPos, int iLen, byte bSP)>
           |08.05.2020| <JSON>: method _transcodeEscapedChars_asc(..) is made public;
           |          |        + added <boolean getJsonStrValue(byte[] abSrch, byte[] abRBuf, int iRBufOff, ...);>
           |          | <BAR>: + added <clipRZ(...)>;
          p|27.07.2020| <httpClt>: added methods for async management:
           |          |          boolean sendHttpReq_async(boolean blPrReqHdr, boolean blPrReqBody, ...);
           |          |          boolean readHttpRsp_async(boolean blPrRspHdr, boolean blPrRspBody, ...);
          q|28.10.2020| <abSimpleHT> added methods:
           |          |          int getRCD(abSimpleHT.SE oSEBuf_, int iOpts_,
           |          |                     byte[] abOBJx1, int iOBJxOff1, int iOBJxLen1,
           |          |                     byte[] abOBJx2, int iOBJxOff2, int iOBJxLen2));
           |          |          int getRCD(abSimpleHT.SE oSEBuf_, int iKId_, int iOpts_,
           |          |                     byte[] abOBJx1, int iOBJxOff1, int iOBJxLen1,
           |          |                     byte[] abOBJx2, int iOBJxOff2, int iOBJxLen2));
           |          |
          r|26.12.2020| <abUTIL> added methods:
           |          |          String abToAString(byte[] abMS, int iOff, int iLen);
           |          |          String  abas(byte[] abMS, int iOff, int iLen);
           |          |          String  abas(byte[] abMS);
           |27.10.2020| <sktClt> class added. Based on httpClt class.
          s|16.03.2021| <TQueue2>: fixed getFirst0(), getLast0() --> put into synchrinized(this) block; fixes reare reports of illegal queue state, though the Q is actually OK.
          t|24.04.2021| <CF>:  added PIN (PRODUCT_INSTANCE_NUMBER) management;
          u|27.06.2021| <TL>:  added:
           |          |            + methods:
           |          |                 <int getX_TLV()>;
           |          |                 <void reset()>;
           |          |                 <void reset(byte[] abD_, int iBegOff_, int iLen_)>;
           |          |                 <void toNextTag()>;
           |          |                 <boolean eod()>;
           |          |            + constructors: <TL(int iTagLen, boolean blT_BE, int iLenLen, boolean blL_BE)>;
           |07.07.2021| <UTIL>: added new method:
           |10.07.2021|      + <void lhs6(long lV)>
           |15.11.2021| <r.j.crypto.algos>: added new method:
           |          |        <static boolean chkValidB64Byte(byte bC)>
           |23.11.2021| <sktClt>: methods added:
           |          |     + int readData(boolean blPrRspBody,
           |          |                    int iOpTO_ms, int iPrevRdDataLen,
           |          |                    byte[] abRspBuf,  int iRspBufOff,  int iRspExpLen);
           |          |     + String getHost();
           |          |     + int    getPort();
           |          |     + String getAddr();
           |23.11.2021| <httpClt>: methods added:
           |          |     + String getHost();
           |          |     + int    getPort();
           |          |     + String getAddr();
           |          |
          v|26.11.2021| <scard.java>: class added: >> smartcard io API bridge;
          w|12.12.2021| <STR.Array>: method added:
           |          |     + <void   setCP(String jsCP_)> which is used in: toString();
           |          |     + <STR    get(int iIndx_);> //-- 1 based;
           |          |     + <STR    get0(int iPtr_);> //-- 0 based;
           |          |     + <byte[] getBytes(byte[] abEOL, boolean blClipRS);>
           |          |     + <int    fillInBAR(byte[] abBuf, int iBOff, byte[] abEOL, boolean blClipRS);>
           |          |     + <int    getSize();>
           |14.12.2021| <STR>: method added:
           |          |     + <void   setCP(String jsCP_)> which is used in: toString();
           |          | <BAR>: method added:
           |          |     +  static byte[]  new_hexAr(STR s);
           |          |     +  static byte[]  new_hexAr(byte[] abHexValue, int iHVOff, int iHVLen);
           |          |     +  static boolean checkHex(byte a);
           |26.12.2021| <sktClt>: methods added:
           |          |     + boolean initBySkt(boolean blPrint, long lReqId, Socket oSkt, boolean blTcpNoDelay);
           |          | <sktClt>: constructor added:
           |          |       public sktClt(String jsSrv_I_, int iThrId_); //-- for initBySkt();
           |29.12.2021| <BAR>: method added:
           |          |     +  static byte[]  new_hexAr(String jsHexValue);
           |          |     +  static byte[]  new_hexAr(String jsHexValue, int iHVOff, int iHVLen);
           |          |     +  static byte[]  new_varAr(String jsV);
           |          |     +  static byte[]  new_varAr(String jsCP, String jsV);
           |30.12.2021|     +  static byte    getByte(byte bh, byte bl);
           |          |     +  static int     assFromHexAr(byte[] abD, int iDOff, String jsHexValue);
           |          |     +  static int     assFromHexAr(byte[] abD, int iDOff, int iMaxLen, String jsHexValue, int iHVOff, int iHVLen);
           |          | <UTIL>: method added:
           |          |     +  static String frmt_Csh2J(String jsM);
           |01.01.2022| <a_VBA> (abstruct Variable Byte Array) class added;
           |02.01.2022| <jsObjHT> Ready To Use class added: [String->Object HT] with IgnoreCase Key;
           |03.01.2022| <VBA> (Variable Byte Array) class added;
           |04.01.2022| <sktClt>: methods added:
           |          |     + byte[] getRspHdr();
           |05.01.2022| <a_VBA>: methods added:
           |          |     + void    sub_ar(a_VBA oS, int iSOff, int iSLen);
           |          |     + boolean subArray();
           |          |     + void    invalidate();
           |          |     + a_VBA   new_sar0();
           |          |     + void bset(int iOff_, char cIn_);
           |          |     + void bset(int iOff_, byte bIn_);
           |          |     + void bSet(int iOff_, byte bIn_);
           |          |     + byte bget(int iOff_);
           |          |     + byte bGet(int iOff_);
           |          | <a_VBA>: methods added:
           |          |     + static boolean checkFullAscii(String jsS_);
           |          |     + static boolean checkFullAscii(String jsS_, int iSO_, int iSL_);
           |06.01.2022|     + boolean equ(VBA o1, VBA o2);
           |          |     + static VBA new_ar(a_VBA oS, int iO, int iL);
           |          |     + static VBA new_sar(VBA oS, int iO, int iL);
           |          |     + VBA app2b64(byte[] abIn, int iInOff, int iInLen);
           |          | <a_VBA>:constructor added:
           |          |     + VBA(VBA oS, int iSOff, int iSLen);
           |07.01.2022| <a_VBA>: methods added:
           |          |     + void    incArLen(int iNewLen);
          x|09.01.2022| <BAR>: methods added:
           |          |     + static byte[]  new_arFromB64Ar(byte[] abV);
           |          |     + static byte[]  new_arFromB64Ar(byte[] abV, int iVOff, int iVLen);
           |23.01.2022| <sktClt>: some debug printing info changed; marker: //--#0175x--;
           |          | <a_VBA>: methods added:
           |          |     + public final VBA  sub0(byte[] abS, int iSOff, int iSLen);
           |          |     + public final void invalidateSAR();
           |          |     + public final String bas();
           |          |     + public final String bas(int iOff, int iLen);
           |          |     + public final String bas(String jsCP);
           |          |     + public final String bas(int iOff, int iLen, String jsCP);
           |          |     + public static final String vba2str(a_VBA baV, int iVOff, int iVLen, String jsCP);
           |          |     + public        final int getInt(int iVOff, int iVLen);
           |          |     + public static final int vba2int(a_VBA baV, int iVOff, int iVLen);
           |          |     + public        final long getLong(int iVOff, int iVLen);
           |          | <VBA>:public static final long vba2long(a_VBA baV, int iVOff, int iVLen);
           |          |       public final VBA sub(byte[] abS, int iSOff, int iSLen);
           |31.01.2022| <JSON>: methods added:
           |          |       static int getJsonBoolValue(byte[] abSrch, BAR.BAR_DESC oBDRslt, boolean blIfNotFoundThrExc, String jsSrvName, String jsFN, boolean blPrint, byte[] abBufIn, int iParseBegOff, int iBufInLen);
           |01.02.2022| <a_VBA>: methods added:
           |          |     + public static final VBA new_utf8(String js);
           |          |     + public static final VBA new_chAr(String jsCP, String js);
          y|29.03.2022| <a_VBA>: fixed oSubArrayRef.invalidate() to oSubArrayRef.invalidateSAR() in all methods;
           |17.04.2022| <a_VBA>: fixed equ() method and is made static;
           |17.04.2022|     + added <boolean equ(a_VBA o2)>;
           |27.04.2022|     + added <boolean equhs(String jsHexValue)>;
           |27.04.2022|     + added <static boolean equhs(a_VBA o1, String jsHexValue);
          z|27.04.2022|
0x00000176 |          |  ----------------------------------------------------------------------------------------------------------------
          a|05.05.2022|<httpClt>: added on httpClt level:{setHost(), setPort()} with reset of <_cn_jsRAddr>;
          b|          |<VBA>: methods added:
           |          |     + public final VBA app_iDec(int iV);
           |          |     + public final VBA iDec(int iV, int iDOff);
           |26.06.2022|     + public final VBA app_berLen(int iLen);
           |          |     + public final VBA app_vba(VBA o);
           |25.08.2022| <a_VBA>: methods added:
           |          |     + boolean equ(a_VBA o1, byte[] abS);
           |          |     + boolean equ(a_VBA o1, byte[] abS, int iSOff);
           |          |     + boolean equ(a_VBA o1, byte[] abS, int iSOff, int iSLen);
           |26.08.2022| <a_VBA>: methods added:
           |          |     + public final VBA fillbyZ0();
           |          |     + public final VBA fillby0(int  iI);
           |          |     + public final VBA fillby0(byte bB);
           |          | <VBA>: methods added:
           |          |     + public final VBA fillbyZ();
           |          |     + public final VBA fillby(int  iI);
           |          |     + public final VBA fillby(byte bB);
           |31.08.2022| <VBA>: methods added:
           |          |       public final VBA ass(STR sIn);
           |          |       public final VBA app(STR sIn);
           |          | <STR>: method added:
           |          |       public final static STR ass(STR str1_, byte[] pabStr, int iStrOff, int iStrLen);
           |          |       public final byte[] getBytesTR(); // Trim;
           |          |       public final byte[] getBytesLC(); // Left Clip;
           |          |       public final byte[] getBytesRC(); // Right Clip;
           |          |       public final byte[] getBytes();   // Full str;
           |          |       public final byte[] Array.getBytesLC(); // LeftClip;
           |          | <AFile>: method added:
           |          |       public synchronized boolean add(byte[] ab_, int iOff, int iLen);
           |          |       public synchronized boolean add(a_VBA ba_);
           |07.08.2022| <CAP>: removed optional "Descriptor" component from load (needed for normalizer);
          c|08.08.2022| <CAP>: fixed incorrect reading large components from ZIPInputStreams.
           |16.09.2022| <VBA>: methods added:
           |          |       public static final VBA new_zar(int iLen);
          d|20.09.2022| <JSON>: methods corrected - false value was not correctly processed. //"fix0x00000176d"
           |          |       static int getJsonBoolValue(byte[] abSrch, BAR.BAR_DESC oBDRslt, boolean blIfNotFoundThrExc, String jsSrvName, String jsFN, boolean blPrint, byte[] abBufIn, int iParseBegOff, int iBufInLen);
           |30.09.2022| <a_VBA>: methods added:
           |          |     + protected final a_VBA apphex0(a_VBA baIn);
           |          |     + protected final a_VBA apphex0(byte[] abIn, int iInOff, int iInLen);
           |          | <VBA>: methods added:
           |          |     + public final VBA apphex(VBA o);
           |          |     + public final VBA apphex(byte[] abIn, int iInOff, int iInLen);
           |          |       public static final VBA new_utf8();
           |29.10.2022|!not impemented:  public static final VBA new_asc(String jsCP); see 25.11.2022;
           |          |       public static final VBA new_chAr(String jsCP);
           |          |     + public final VBA app_asc(STR sIn);
           |          |     + public final VBA ass_asc(String jsIn);
           |          |     + public final VBA ass_asc(String jsIn);
           |          | <VBA>: toString() changed to to print String values also;
           |12.11.2022|     +  public static final VBA vbasidec(VBA oDest, int iDOff, int iV);
          e|12.11.2022| <jsonMap> class added;
           |17.11.2022| <sktClt> metods added:
           |          |     + public final httpClt setHost(String js);
           |          |     + public final httpClt setPort(int i);
           |          |     + public final httpClt setConnTO(int i);
           |18.11.2022| <VBA>: methods added:
           |          |     + VBA apphex(String jsIn);
           |          |     + VBA apphex(String jsIn, int iInOff, int iInLen);
           |22.11.2022| <VBA>: methods added:
           |          |     +        final boolean equa(String jsS);
           |          |     +        final boolean equaic(String jsS);
           |          |     +        final boolean equ_asc(String jsS);
           |          |     +
           |          |     + static final boolean equ_asc(boolean blIC, a_VBA o1, String jsS);
           |          |     + static final boolean equ_asc(boolean blIC, a_VBA o1, String jsS, int iSOff, int iSLen));
           |22.11.2022| <UTIL>: methods added:
           |          |     + static final String abs(String jsCP , byte[] abV, int iVOff, int iVLen);
           |25.11.2022| <VBA>: method  added:
           |          |       public static final VBA new_asc(String js);
           |26.11.2022| <BAR>: fixed to accept negative values:
           |          |       public final static long getLong(byte[] ab, int iOff_, int iLen_, int radix_);
          f|27.11.2021| <STR>, <STR.Array>: method fixed (NPE):
           |          |     + <void   setCP(String jsCP_)>;
           |06.12.2022| <a_VBA>: (06.12.2022#001): fixed using of uninitialized subarrays in assigments;
           |          | <a_VBA>: method  added:
           |          |       <static a_VBA new_sar0(boolean blDetached, a_VBA oS, int iO, int iL)>
           |          | <VBA>: method  added:
           |          |       <static final VBA new_view(VBA oS, int iO, int iL);>
           |07.01.2023| <VBA>: method  added:
           |          |     + <static byte[]  new_hexAr(byte[] ab)>
           |          |     + <static byte[] new_ar(byte[] abChars, byte[] abHexValue)>                                                         }
           |          |         +!! abChars can be null;
           |          |     + <VBA rapp_berLen(int iLen)>
           |          |     + <VBA rapp(byte[] abIn, int iInOff, int iInLen)>
           |          |     + <VBA rapp(byte[] abIn)>
           |          |     + <VBA rapp_vba(VBA o)>
           |          |     + <VBA rapp(VBA o)>
           |          |     + <VBA rswap()>
           |          |
           |          | <a_VBA>: method  added:
           |          |     + <a_VBA riApp1(int iI)>
           |          |     + <a_VBA riApp2(int iI)>
           |          |     + <a_VBA riApp3(int iI)>
           |          |     + <a_VBA riApp4(int iI)>
           |          |     + <a_VBA riAppX(int iILen, int iI)>
           |          |     + <a_VBA riSet(int iDOff, int iILen, int iI)>
           |          |     + <a_VBA protected final a_VBA rapp0(byte[] abIn, int iInOff, int iInLen)>
           |          |     + <static a_VBA rvbasint(a_VBA baD, int iDOff, int iSLen, int iS)>
           |          |
           |          | <BAR>: method added:
          j|07.01.2023|     + <static int rass(byte[] abD_, int iPos_, byte[] abS_, int iBeg_, int iLen_)>
           |15.03.2023| <a_VBA>: method  added:
           |          |       <boolean chkubnd(int iO, int iL)>  //-- check upper boundary;
           |18.03.2022| <BAR>: methods added:
           |          |       final static int XOR1x1(byte[] ab);
           |          |       final static int XOR1x1(byte[] ab, int iO, int iL);
           |          |       final static int XOR1x1(int iRV, byte[] ab, int iO, int iL);
           |18.03.2023| <a_VBA>: method  added:
           |          |       <int xor();>
           |          |       <int xor(int iOff);>
           |18.03.2023| <r.j.crypto.algos>: method  added:
           |          |     + static byte[] ldPrKeyFile(String jsCaller, String jsKeyFName);
           |          |     + static byte[] ldPbKeyFile(String jsCaller, String jsKeyFName);
           |          |     + static byte[] ldCertFile(String jsCaller, String jsKeyFName);
           |          |     + static byte[] ldXKeyFile(String jsCaller, String jsInfo, String jsKeyFName, byte[][] aabSubs);
           |          |     + static byte[] _new_barFromSplittedB64(String jsInfo, byte[] abIn);
           |23.03.2023| <BAR>: method return type changed from 'void' to 'int' for
           |          |       static int replaceSubs(boolean blEQUIC,...);
           |23.03.2023| <UTIL>: method added:
           |          |     +  static String getClpBrdString();
           |09.04.2023| <a_VBA>: fileld <blStrVal> mngmnt added;
           |          |     +    method  added: <void setStr(boolean blV);>
           |10.04.2023| <a_VBA>: method added:
           |          |     + public final VBA app2(int iI);
           |          |     + public final VBA app3(int iI);
           |          |     + public final VBA app4(int iI);
           |          |     + public final VBA appX(int iILen, int iI);
           |          |     + public final VBA setint(int iDOff, int iILen, int iI);
           |          |     //
           |          |     + public final VBA rapp2(int iV);
           |          |     + public final VBA rapp3(int iV);
           |          |     + public final VBA rapp4(int iV);
          h|19.04.2023| <a_VBA>: method <sub0()> fixed wrong max len calculation;
           |22.09.2023| <jsonMap>: method "add" modified; see #22.09.2023;
           |24.11.2023  <scard>: added method <CardTerminal getCardTerminal(String jsProviderName, String jsRdrName_)>
          i|01.02.2024| <a_VBA>: method added:
           |          |     + public        final a_VBA lAppX(int iILen, long lI);
           |          |     + public        final a_VBA lSet(int iDOff, int iILen, long iI);
           |          |     + public static final a_VBA vbaslong(a_VBA baD, int iDOff, int iSLen, long iS);
           |          |     + protected final a_VBA app2hex0(a_VBA baIn);
           |          |     + protected final a_VBA app2hex0(byte[] abIn, int iInOff, int iInLen);
           |          | <VBA>: method added:
           |          |     + public final VBA app5(long iI);
           |          |     + public final VBA app8(long iI);
           |          |     + public final VBA appX(int iILen, long iI);
           |          |     + public final VBA setlong(int iDOff, int iILen, int iI);
           |          |     + public final VBA app2hex(VBA o);
           |          |     + public final VBA app2hex(byte[] abIn, int iInOff, int iInLen);
0x00000177 |30.09.2024|  ----------------------------------------------------------------------------------------------------------------
           |          | <CF>:
           |          |     + P1-P5 substitute params processing added;
          a|30.09.2024|     + '+' append sign added in CF processing for CFE list -> method <CF.int parse(CFE[] ao_cfe_list, STR s1, STR s2)>, boolean blAppend;
           |          | <UTIL>: method added: <public final static int getLongDecStrLen(long v)>
           |          | <VBA>:  methods added:
           |          |     + VBA app_lDec(long lV){return lDec(lV, len());
           |          |     + VBA lDec(long lV, int iDOff)
          b|15.11.2024| <jsonMap>: added val long type for x.("add", name, val);
           |          | <VBA>: methods added:
           |          |     + VBA app_lHex(long lV, int iSLen);
           |          |     + VBA lHex(long lV, int iDOff, int iSLen, byte bSP);
           |          |     + VBA deflenZ(int iL);
           |16.11.2024| <httpClt>: methods added:
           |          |     + long    getHttpHdrIntValue(byte[] abSrch, String jsFN, boolean blPrint, int iRadix);
           |          |     + boolean getHttpHdrStrValue(byte[] abSrch, BAR.BAR_DESC oBDRslt, String jsFN, boolean blPrint);
           |          |     + boolean getHttpHdrStrValue(byte[] abSrch, BAR.BAR_DESC oBDRslt, boolean  blIfNotFoundThrExc, String jsFN, boolean blPrint);
           |17.11.2024| <abDataHT>: methods added, timers processing added;
           |          |     + int setRCDTmr(abDataHT.SE oSEBuf_, int iKId_,
           |          |                  byte[] abKEYx_, int iKEYxOff_, int iKEYxLen_,
           |          |                  int iTmrId_, long lTS_);
           |          |     + int setRCDTmr(abDataHT.SE oSEBuf_, int iKId_,
           |          |                  byte[] abKEYx_,
           |          |                  int iTmrId_, long lTS_);
           |          |     + int setRCDTmr(abDataHT.SE oSEBuf_, int iKId_,
           |          |                  String jsKEYx_, int iKEYxOff_, int iKEYxLen_,
           |          |                  int iTmrId_, long lTS_);
           |          | <abDataHT>: options added:
           |          |     int _optU_eiDelRcdOnTmr2   = 0x00200000; // mixed with _opt_eiXXXX;
           |          | <abDataHT>: method changed to process option _optU_eiDelRcdOnTmr2;
           |          |     void _cb_synSE_tmr2Exp(TThread2 oPThr, int iCurPThrId, TSessEntry oTSE);
           |23.11.2024| <httpClt>: CFE added: <o_iHttpOpTO_s>;
           |20.12.2024| <UTIL>:  + boolean checkXDec(String js_, int iO_, int iL_, boolean blCheckNeg);
           |          |          + long    getIP_Port_asLong(String jsIPAddr);
           |25.01.2025|          + int     getAddrLen_Port(String jsIPAddr_);
           |25.01.2025|          + fixed   boolean checkXDec(String js_, int iO_, int iL_, boolean blCheckNeg);
          c|25.01.2025| <STR>:   methods added:
           |          |    + static boolean _asc_equic(String jsStr1_,
           |          |                                String jsStr2_, int iStr2Off, int iStr2Len);
           |          |    + static boolean _asc_equic(String jsStr1_, int iStr1Off, int iStr1Len,
           |          |                                String jsStr2_, int iStr2Off, int iStr2Len);
          d|23.03.2025| <VBA>: fixed error in:
           |          |     + void deflenZ(int iL_);
          e|31.03.2025| <VBA>: changed API:
           |          |     + changed:  VBA app(Object oIn)  --> VBA appo(Object oIn);
           |          |     + added:    VBA app(VBA o);
           |02.04.2025|     + changed:  VBA ass(Object oIn)  --> VBA appo(Object oIn);
           |          |     + added:    VBA ass(VBA o);
          f|28.04.2025| <BIS>:
           |          |     +  fixed: _getData():  added processing for InterruptedIOException;
           |          |     +  added: void catchIIOEx(boolean blV);
           |29.04.2025| <httpClt>: added experimental method: <sendHttpReqB()>;
          g|25.05.2025| <jsonMap>: added optional "O" parameter  for method "get";
           |17.06.2025| <BAR>: added method:
           |          |     + static boolean equ(boolean blIgnoreCase, byte[] ab1, int iO1, int iL2, byte[] ab2, int iO2, int iL2);
           |          |     + static boolean equl(boolean blIgnoreCase, byte[] ab1, int iO1, byte[] ab2, int iO2, int iL);
           |          |     + static boolean equicl(byte[] ab1, int iO1, byte[] ab2, int iO2, int iL);
          h|27.06.2025| <JSON>: to all functions added:
           |          |     + (abSrch, iSOff, iSLen, ....);
           |          |     + (VBA baSrch);
           |          | <jsonMap2>: created from <jsonMap>;
           |          |     + Hi speed version of jsonMap for hi load servers: no new().
           |          |     + Only UTF-8 used.
                            + Evrg get() time is about 0.5-4 us for 600 bytes JSON doc at 2GHz CPU.
           |          | <a_VBA>: added methods:
           |          |       a_VBA app2utf8_0(String jsS);
           |          |       a_VBA app2utf8_0(String jsS, int iSOff, int iSLen);
           |          | <VBA>: added methods:
           |          |       VBA app2utf8(String jsS);
           |          |       VBA app2utf8(String jsS, int iSOff, int iSLen);
           |          | Added classes: INT, BOOLEAN, LONG;
           |29.06.2025| <STR>: added method:
           |          | boolean equic(VBA baStr1_, String jstr2_);
           |          | boolean equic(String jstr2_, VBA baStr1_);
           |07.08.2025| <BAR>: added method:
           |          |     + static boolean equicl(byte[] ab1, int iO1, int iL1, byte[] ab2);
           |          |     + static boolean equl(byte[] ab1, int iO1, int iL1, byte[] ab2);
           |07.08.2025|     + static boolean equicl(BAR_DESC oBD, int iIdx, byte[] ab2);
           |          |     + static boolean equl(BAR_DESC oBD, int iIdx, byte[] ab2);
           |          |     + static boolean equicl(BAR_DESC oBD, int iIdx, String js2);
           |          |     + static boolean equl(BAR_DESC oBD, int iIdx, String js2);

Source: README_20250830.txt, updated 2025-08-30