/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 - 2 0 2 2 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġorg . jetbrains . project or . common . misc Ċ Ċ import Ġkotlinx . serialization . Experimental Serialization Api Ċ import Ġkotlinx . serialization . descriptors . Serial Descriptor Ċ import Ġkotlinx . serialization . descriptors . Serial Kind Ċ import Ġkotlinx . serialization . descriptors . element Descriptors Ċ import Ġkotlinx . serialization . descriptors . element Names Ċ Ċ private Ġval ĠList < Int >. compatibility Hash : ĠInt Ġget () Ġ= Ġreduce Ġ{ Ġacc , Ġc Ġ-> Ġ 3 1 Ġ* Ġacc Ġ+ Ġc Ġ} Ċ Ċ @ Suppress (" DE PREC ATION ") Ġ Ġ// Ġhttps :// yout rack . jetbrains . com / issue / KT - 4 7 6 4 4 Ċ private Ġval ĠString . compatibility Hash : ĠInt Ġget () Ġ= Ġmap ( Char :: toInt ). compatibility Hash Ċ Ċ private Ġval ĠBoolean . compatibility Hash : ĠInt Ġget () Ġ= Ġif Ġ( this ) Ġ 1 Ġelse Ġ 0 Ċ Ċ @ Opt In ( Experimental Serialization Api :: class ) Ċ val ĠSerial Descriptor . compatibility Hash : ĠInt ĊĠ Ġget () Ġ{ ĊĠĠĠ Ġval Ġsub Descriptors Hashes Ġ= Ġwhen Ġ( kind ) Ġ{ ĊĠĠĠĠĠ Ġis ĠSerial Kind . ENUM Ġ-> Ġempty List () ĊĊĠĠĠĠĠ Ġelse Ġ-> Ġelement Descriptors . map ( Serial Descriptor :: compatibility Hash ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠ Ġserial Name . compatibility Hash , ĊĠĠĠĠĠ Ġkind . toString (). compatibility Hash , ĊĠĠĠĠĠ Ġis Nullable . compatibility Hash , ĊĠĠĠĠĠ Ġelements Count , ĊĠĠĠĠĠ Ġ* element Names . map ( String :: compatibility Hash ). to Typed Array (), ĊĠĠĠĠĠ Ġ* sub Descriptors Hashes . to Typed Array () ĊĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ. compatibility Hash ĊĠ Ġ} Ċ