package Ġcom . je ff pd avid son . kot words . formats Ċ Ċ import Ġcom . je ff pd avid son . kot words . model . P uzzle Ċ import Ġcom . je ff pd avid son . kot words . model . Rows G arden Ċ import Ġnet . mam oe . yaml kt . Yaml Ċ Ċ /** ĠContainer Ġfor Ġa ĠRows ĠG arden Ġpuzzle Ġin Ġthe Ġ. rg z Ġformat . Ġ*/ Ċ class ĠR gz ( val Ġrg : ĠString ) Ġ: ĠP uzzle able Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġas P uzzle (): ĠP uzzle Ġ= Ġas Rows G arden (). as P uzzle () ĊĊĠĠĠ Ġfun Ġas Rows G arden ( ĊĠĠĠĠĠĠĠ Ġlight B loom Color : ĠString Ġ= Ġ"# FFFFFF ", ĊĠĠĠĠĠĠĠ Ġmedium B loom Color : ĠString Ġ= Ġ"# C 3 C 8 FA ", ĊĠĠĠĠĠĠĠ Ġdark B loom Color : ĠString Ġ= Ġ"# 5 7 6 5 F 7 ", ĊĠĠĠĠĠĠĠ Ġadd Word Count : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġadd Hy phen ated : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġ): ĠRows G arden Ġ= ĊĠĠĠĠĠĠĠ ĠYaml . Default . decode FromString ( Rows G arden . serializer (), Ġfix Invalid Yaml Values ( rg )). copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlight B loom Color Ġ= Ġlight B loom Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmedium B loom Color Ġ= Ġmedium B loom Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdark B loom Color Ġ= Ġdark B loom Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Word Count Ġ= Ġadd Word Count , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Hy phen ated Ġ= Ġadd Hy phen ated , ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġfrom R gz File ( rg z : ĠByteArray ): ĠR gz Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrg Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZip . unzip ( rg z ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInvalid Zip Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTry Ġas Ġa Ġplain - text Ġfile . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr gz ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrg String Ġ= Ġrg . decode ToString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠStrip Ġoff ĠB OM Ġfrom Ġbeginning Ġif Ġpresent . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( rg String . startsWith ('\ u FE FF ')) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrg String Ġ= Ġrg String . substring ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠR gz ( rg String ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠFix Ġinvalid Ġvalues Ġin Ġthe Ġprovided ĠYAML Ġtext . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ. rg Ġfiles Ġoften Ġcontain Ġinvalid ĠYAML Ġdue Ġto Ġvalues Ġcontaining Ġreserved Ġcharacters . ĠThis ĊĠĠĠĠĠĠĠĠ Ġ* Ġmethod Ġattempts Ġto Ġadds Ġquotes Ġaround Ġany Ġvalue , Ġescap ing Ġexisting Ġquotes Ġas Ġneeded . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġfix Invalid Yaml Values ( yaml : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġyaml . lines (). join ToString ("\ n ") Ġ{ Ġline Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFind Ġa Ġvalue Ġon Ġthis Ġline Ġ- Ġanything Ġfollowing Ġa Ġ" :", Ġignoring Ġany Ġwhitespace Ġat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthe Ġbeginning Ġand Ġend . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Pattern Ġ= Ġ": \\ s * ([^ \\ s ]. + [^ \\ s ]) \\ s * ". to Regex () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġvalue Pattern . find ( line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNothing Ġfound ; Ġinsert Ġthe Ġline Ġas Ġis . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠInsert Ġthe Ġline Ġwith Ġthe Ġvalue Ġsur rounded Ġby Ġquotes Ġand Ġany Ġexisting Ġquotes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġescaped . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġescaped Value Ġ= Ġresult . group Values [ 1 ]. replace (" \"", Ġ"\\ \" ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline . replace ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ": \\ s *. +". to Regex (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRegex . escape Replacement (": Ġ\"$ escaped Value \" ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }