package Ġe hn . tech iop . h cert . kotlin . chain . impl Ċ Ċ import ĠP ako . Def late Function Options Ċ import ĠP ako . Inf late Ċ import ĠP ako . def late Ċ import Ġe hn . tech iop . h cert . kotlin . chain . Nullable Try Catch . catch Ċ import Ġe hn . tech iop . h cert . kotlin . chain . Nullable Try Catch . js Try Ċ import Ġe hn . tech iop . h cert . kotlin . chain . impl . Compression Constants . MAX _ DE COMPRESSED _ SIZE Ċ import Ġe hn . tech iop . h cert . kotlin . chain . toByteArray Ċ import Ġe hn . tech iop . h cert . kotlin . chain . to Uint 8 Array Ċ import Ġe hn . tech iop . h cert . kotlin . log . format Mag Ċ import Ġio . github . a ak ira . n api er . N api er Ċ import Ġorg . kh ronos . webgl . Uint 8 Array Ċ Ċ actual Ġclass ĠCompress or Adapter Ġ{ ĊĊĠĠĠ Ġval Ġtag Ġ= Ġ" Z Lib ${ hashCode () }" ĊĊĠĠĠ Ġactual Ġfun Ġencode ( input : ĠByteArray , Ġlevel : ĠInt ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ ĠN api er . v (" De fl ating Ġ${ input . size . format Mag ()} B Ġinput Ġusing Ġcompression Ġlevel Ġ$ level ", Ġtag Ġ= Ġtag ) ĊĠĠĠĠĠĠĠ Ġval Ġcompressed Ġ= Ġ( def late ( input . to Uint 8 Array (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠDef late Function Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġvar Ġlevel : Ġdynamic Ġ= Ġlevel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġas ĠUint 8 Array ). toByteArray () ĊĠĠĠĠĠĠĠ ĠN api er . v (" ... Ġwas Ġdef lated Ġto Ġ${ compressed . size . format Mag ()} B ", Ġtag Ġ= Ġtag ) ĊĠĠĠĠĠĠĠ Ġreturn Ġcompressed ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġfun Ġdecode ( input : ĠByteArray ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ ĠN api er . v (" In fl ating Ġ${ input . size . format Mag ()} B Ġinput ", Ġtag Ġ= Ġtag ) ĊĠĠĠĠĠĠĠ Ġreturn Ġjs Try Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIt 's Ġfine Ġto Ġpush Ġthe Ġwhole Ġdata Ġin Ġat Ġonce , Ġsince ĠP ako Ġwill Ġsplit Ġit Ġinto Ġ 6 5 5 3 6 Ġbyte Ġchunks Ġinternally ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfl ator Ġ= ĠSafe Inf late ( input , Ġtag ). also Ġ{ Ġit . push ( input . to Uint 8 Array ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( in fl ator . result Ġas ĠUint 8 Array ). toByteArray () ĊĠĠĠĠĠĠĠ Ġ}. catch Ġ{ Ġthrow Ġit Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ private Ġclass ĠSafe Inf late ( private Ġval Ġinput : ĠByteArray , Ġprivate Ġval Ġtag : ĠString ) Ġ: ĠInf late () Ġ{ ĊĠĠĠ Ġvar Ġnum De compressed Bytes Ġ= Ġ 0 ĊĠĠĠ Ġoverride Ġfun Ġon Data ( chunk : ĠUint 8 Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// one Ġtoo Ġmany Ġis Ġnot Ġan Ġissue ĊĠĠĠĠĠĠĠ Ġsuper . on Data ( chunk ) ĊĠĠĠĠĠĠĠ Ġnum De compressed Bytes Ġ+= Ġchunk . length ĊĠĠĠĠĠĠĠ Ġif Ġ( num De compressed Bytes Ġ> ĠMAX _ DE COMPRESSED _ SIZE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN api er . v (" Ref using Ġto Ġde compress Ġand Ġadditional Ġ${ chunk . length . format Mag ()} B Ġfrom Ġinput ", Ġtag Ġ= Ġtag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" De compression Ġexceeded Ġ$ MAX _ DE COMPRESSED _ SIZE Ġbytes , Ġis : Ġ$ num De compressed Bytes ! ĠInput Ġmust Ġbe Ġinvalid .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠN api er . v (" De compressed Ġ${ num De compressed Bytes . format Mag ()} B Ġfrom Ġ${ input . size . format Mag ()} B Ġinput ", Ġtag Ġ= Ġtag ) ĊĠĠĠ Ġ} Ċ } Ċ