Îõ³h& ÔO Ñ®þ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL M NOP Q R S T U VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž�� ‘ ’ “ ” • – — ˜ ™ š ›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡ ¢ £ ¤!¥"¦"§"¨"©"ª"«"¬"­"®"¯"°"±"²"³"´"µ"¶"·"¸#¹#º#»#¼#½#¾#¿#À$Á$Â$Ã$Ä$Å$Æ$Ç$È$É$Ê$Ë$Ì$Í$Î$Ï$Ð$Ñ$Ò$Ó$Ô$Õ$Ö$×$Ø$Ù$Ú$Û$Ü%Ý%Þ%ß%à%á%â%ã%ä%å%æ%ç%è%é%ê%ë%ì%í%î%ï%ð%ñ%ò%ó%ô%õ%ö%÷%ø%ù%ú%û%ü%ý%þ%ÿ%€%�%‚%ƒ%„%…%†%‡%ˆ%‰%Š%‹%Œ%�%Ž%�%�%‘%’%“%”%•%–%—%˜%™%š%›%œ%�%ž%Ÿ% %¡%¢%£%¤%¥%¦%§%¨%©%ª%«%¬%­%®%¯%°%±%²%³%´%µ%¶%·%¸%¹%º%»%¼%½%¾%¿%À%Á%Â%Ã%Ä%Å%Æ%Ç%È%É%Ê%Ë%Ì%Í%Î%Ï%Ð%Ñ%Ò%Ó%Ô%Õ%Ö%×%Ø%Ù%Ú%Û%Ü%Ý&Þ&ß&à&á&â&ã&ä&å&æ&ç&è&é&ê&ë'ì'í'î'ï'ð'ñ'ò'ó'ô'õ'ö'÷'ø'ù'ú'û'ü'ý'þ'ÿ(€(�(‚(ƒ(„(…(†(‡(ˆ(‰(Š(‹(Œ(�(Ž(�)�)‘)’)“)”)•)–)—)˜)™)š)›)œ)�)ž)Ÿ) )¡)¢)£)¤)¥)¦)§)¨)©)ª)«)¬)­)®)¯)°)±)²)³)´*µ*¶*·*¸*¹*º»+¼+½+¾,¿,À,Á,Â,Ã,Ä,Å,Æ,Ç,È,É,Ê,Ë,Ì,Í,Î,Ï,Ð-Ñ-Ò-Ó-Ô.Õ.Ö.×.Ø.Ù.Ú.Û.Ü.Ý.Þ/ß/à/á/â/ã/ä/å/æ/ç/è/é/ê/ë/ì/í/î/ï/ð/ñ/ò/ó/ô/õ/ö/÷/ø/ù/ú/û/ü0ý0þ0ÿ0€0�0‚0ƒ0„0…0†0‡0ˆ0‰0Š0‹0Œ0�0Ž0�0�0‘0’0“0”0•0–0—1˜1™1š1›1œ1�1ž1Ÿ1 1¡1¢1£1¤1¥1¦1§1¨1©1ª1«1¬1­1®1¯1°1±1²1³1´1µ1¶1·1¸1¹1º1»1¼1½1¾1¿1À1Á1Â1Ã1Ä1Å1Æ1Ç2È2É2Ê2Ë2Ì3Í3Î3Ï3Ð3Ñ3Ò3Ó3Ô3Õ3Ö3×3Ø3Ù3Ú3Û3Ü4Ý4Þ4ß4à4á4â4ã4ä4å4æ4çèé5ê5ë5ì5í5î5ï5ð5ñ5ò5ó5ô5õ5ö5÷5ø5ù5ú5û5ü5ý5þ5ÿ5€5�5‚5ƒ6„6…6†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢7£7¤7¥7¦7§7¨7©7ª7«7¬7­8®8¯8°8±8²8³8´8µ8¶8·8¸8¹8º8»8¼8½8¾8¿8À8Á9Â9Ã9Ä9Å9Æ9Ç9È9É9Ê9Ë9Ì9Í9Î9Ï9Ð9Ñ9Ò9Ó9Ô9Õ9Ö9×9Ø9Ù9Ú9Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î:ï:ð:ñ:ò:ó:ô:õ:ö:÷:ø:ù:ú:û:ü:ý:þ:ÿ:€:�:‚:ƒ:„:…:†:‡:ˆ:‰:Š:‹:Œ:�:Ž:�:�:‘:’:“:”:•:–:—:˜:™:š:›:œ:�:ž:Ÿ: :¡:¢:£:¤:¥:¦:§:¨:©:ª:«:¬:­:®:¯:°:±:²:³:´:µ:¶:·:¸;¹;º;»;¼;½;¾;¿;À;Á;Â;ÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕ<Ö<×<Ø<Ù<Ú<Û<Ü<Ý<Þ<ß<à<á<â<ã<ä<å<æ<ç=è=é=ê=ë=ì=í=î=ï=ð=ñ=ò=ó=ô=õ=ö=÷=ø=ù=ú=û=ü=ý=þ=ÿ=€ =� =‚ =ƒ =„ =… =† =‡ =ˆ =‰ =Š =‹ =Œ =� =Ž =� =� =‘ =’ =“ =” =• =– =— ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª >« >¬ >­ >® >¯ >° >± >² >³ >´ >µ >¶ >· >¸ >¹ >º >» >¼ >½ >¾ >¿ >À >Á > >à >Ä >Å >Æ >Ç >È >É >Ê >Ë >Ì >Í >Î >Ï >Ð >Ñ >Ò >Ó >Ô >Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ € � ?‚ ?ƒ ?„ ?… ?† ?‡ ?ˆ ?‰ ?Š ?‹ ?Œ ?� ?Ž ?� ?� ?‘ @’ @“ @” @• @– @— @˜ @™ @š @› @œ @� @ž @Ÿ @  @¡ @¢ @£ @¤ @¥ @¦ @§ @¨ @© @ª @« @¬ @­ @® A¯ A° A± A² A³ A´ Aµ A¶ A· A¸ A¹ Aº A» A¼ A½ A¾ A¿ AÀ AÁ A Aà AÄ AÅ AÆ AÇ AÈ AÉ AÊ AË AÌ AÍ AÎ AÏ AÐ AÑ AÒ AÓ AÔ AÕ AÖ A× AØ AÙ AÚ AÛ AÜ AÝ AÞ Aß Aà Aá Aâ Aã Aä Aå Aæ Aç Aè Aé Aê Aë Aì Aí Aî Aï Að Añ Aò Aó Aô Aõ Aö A÷ Aø Aù Aú Aû Aü Aý Aþ Aÿ A€ A� A‚ Aƒ A„ A… A† A‡ Aˆ A‰ AŠ A‹ AŒ A� AŽ A� A� A‘ A’ A“ A” A• A– A— A˜ A™ Aš A› Aœ A� Až AŸ A  A¡ B¢ B£ B¤ B¥ B¦ B§ B¨ B© Bª B« B¬ B­ B® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á  à Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â Cã Cä Cå Cæ Cç Cè Cé Cê Cë Cì Cí Cî Cï Cð Cñ Cò Có Cô Cõ Cö C÷ Cø Cù Cú Cû Cü Cý Cþ Cÿ C€ C� C‚ Dƒ D„ D… D† D‡ Dˆ D‰ DŠ D‹ DŒ D� DŽ D� D� D‘ D’ E“ E” E• E– E— E˜ F™ Fš F› Fœ F� Fž FŸ F  F¡ F¢ F£ F¤ F¥ F¦ F§ F¨ F© Fª F« F¬ F­ F® F¯ F° F± F² F³ F´ Fµ F¶ F· F¸ F¹ Fº F» F¼ F½ F¾ F¿ FÀ FÁ G Gà GÄ GÅ GÆ GÇ GÈ GÉ GÊ GË GÌ GÍ GÎ GÏ GÐ GÑ GÒ GÓ GÔ GÕ GÖ G× GØ GÙ GÚ GÛ GÜ GÝ GÞ Gß Gà Gá Gâ Gã Gä Gå Gæ Gç Gè Gé Gê Gë Hì Hí Hî Hï Hð Hñ Hò Hó Hô Hõ Hö H÷ Hø Hù Hú Hû Hü Hý Hþ Hÿ H€ H� H‚ Hƒ H„ H… H† H‡ Hˆ H‰ HŠ H‹ HŒ H� HŽ H� H� H‘ H’ H“ H” H• H– H— H˜ H™ Hš H› Hœ H� Hž HŸ H  H¡ H¢ H£ H¤ H¥ H¦ H§ H¨ H© Hª H« H¬ H­ H® H¯ H° H± H² H³ H´ Hµ H¶ H· H¸ H¹ Hº H» H¼ H½ H¾ H¿ HÀ HÁ H Hà HÄ HÅ HÆ HÇ HÈ HÉ HÊ HË HÌ HÍ HÎ HÏ HÐ HÑ HÒ HÓ HÔ HÕ HÖ H× HØ HÙ HÚ HÛ HÜ HÝ HÞ Hß Hà Há Hâ Hã Hä Hå Hæ Hç Hè Hé Hê Hë Hì Hí Hî Hï Hð Hñ Hò Hó Hô Hõ Hö H÷ Hø Hù Hú Hû Hü Hý Hþ Hÿ H€H�H‚HƒH„H…H†H‡HˆH‰HŠH‹HŒH�HŽH�H�H‘I’I“I”I•I–I—I˜I™IšI›IœI�IžIŸI I¡I¢I£I¤I¥I¦I§I¨I©IªI«I¬I­I®I¯I°I±I²I³I´IµI¶I·I¸I¹IºI»I¼I½I¾I¿IÀIÁIÂIÃIÄIÅIÆIÇIÈIÉIÊIËIÌIÍIÎIÏIÐIÑIÒIÓIÔIÕIÖI×IØIÙIÚIÛIÜIÝIÞIßIàIáIâIãIäIåIæIçIèIéIêIëIìIíIîIïIðIñIòIóIôIõIöI÷IøIùIúIûIüIýIþIÿI€I�I‚IƒI„I…I†I‡IˆI‰IŠI‹IŒI�IŽI�I�I‘I’I“I”I•I–I—I˜I™IšI›IœI�IžIŸI I¡I¢I£I¤I¥I¦I§I¨I©IªI«I¬I­I®I¯I°I±I²I³I´IµI¶I·I¸I¹IºI»I¼I½I¾I¿IÀIÁIÂIÃIÄIÅIÆIÇIÈIÉIÊIËIÌIÍIÎIÏIÐIÑIÒIÓIÔIÕIÖI×IØIÙIÚIÛIÜIÝIÞIßIàIáIâIãIäIåIæIçIèIéIêIëIìIíIîIïIðIñIòIóIôIõIöI÷IøIùIúIûIüIýIþIÿI€I�I‚IƒI„I…I†I‡IˆI‰IŠI‹IŒI�IŽI�I�I‘I’I“I”I•I–I—I˜I™IšI›IœI�IžIŸI I¡I¢I£I¤I¥I¦I§I¨I©IªI«I¬I­I®I¯I°I±I²I³I´IµI¶I·I¸I¹IºI»I¼I½I¾I¿IÀIÁIÂIÃIÄIÅIÆIÇIÈIÉIÊIËIÌIÍIÎIÏIÐIÑIÒIÓIÔIÕIÖI×IØIÙIÚIÛIÜIÝIÞIßIàIáIâIãIäIåIæIçIèIéIêIëIìIíIîIïIðIñIòIóIôIõIöI÷IøIùIúIûIüIýIþIÿI€I�I‚IƒI„I…I†I‡IˆI‰IŠI‹IŒI�IŽI�I�I‘I’I“I”I•I–I—I˜I™IšI›IœI�IžIŸI I¡I¢I£I¤I¥I¦I§I¨I©IªI«I¬I­I®I¯I°I±I²I³I´IµI¶I·I¸I¹IºI»I¼I½I¾I¿IÀIÁIÂIÃIÄIÅIÆIÇIÈIÉIÊIËIÌIÍIÎIÏIÐIÑIÒIÓIÔIÕIÖI×IØIÙIÚIÛIÜIÝIÞIßIàIáIâIãIäIåIæIçIèIéIêIëIìIíIîIïIðIñIòIóIôIõIöI÷IøIùIúIûIüIýIþIÿI€I�I‚IƒI„I…I†I‡IˆI‰IŠI‹IŒI�IŽI�I�I‘I’I“I”I•I–I—I˜I™IšI›IœI�IžIŸI I¡I¢I£I¤I¥I¦I§I¨I©IªI«I¬I­I®I¯I°I±I²I³I´IµI¶I·I¸I¹IºI»I¼I½I¾I¿IÀIÁIÂIÃIÄIÅIÆIÇIÈIÉIÊIËIÌIÍIÎIÏIÐIÑIÒIÓIÔIÕIÖI×IØIÙIÚIÛIÜIÝIÞIßIàIáIâIãIäIåIæIçIèIéIêIëIìIíIîIïIðIñIòIóIôIõIöI÷IøIùIúIûIüIýIþIÿI€I�I‚IƒI„I…I†I‡IˆI‰IŠI‹IŒI�IŽI�I�I‘I’I“I”I•I–I—I˜I™IšI›IœI�IžIŸI I¡I¢I£I¤I¥I¦I§I¨I©IªI«I¬I­I®I¯I°I±I²I³I´IµI¶I·I¸I¹IºI»I¼I½I¾I¿IÀIÁIÂIÃIÄIÅIÆIÇIÈIÉIÊIËIÌIÍIÎIÏIÐIÑIÒIÓIÔIÕIÖI×IØIÙIÚIÛIÜIÝIÞIßIàIáIâIãIäIåIæIçIèIéIêIëIìIíIîIïIðIñIòIóIôIõIöI÷IøIùIúIûIüIýIþIÿI€I�I‚IƒI„I…I†I‡IˆI‰IŠI‹IŒI�IŽI�I�I‘I’I“I”I•I–I—I˜I™IšI›IœI�IžIŸI I¡I¢I£I¤I¥I¦I§I¨I©IªI«I¬I­I®I¯I°I±I²I³I´IµI¶I·I¸I¹IºI»I¼I½I¾I¿IÀIÁIÂIÃIÄIÅIÆIÇIÈIÉIÊIËIÌIÍIÎIÏIÐIÑIÒIÓIÔIÕIÖI×IØIÙIÚIÛIÜIÝIÞIßIàIáIâIãIäIåIæIçIèIéIêIëIìIíIîIïIðIñIòIóIôIõIöI÷IøIùIúIûIüIýIþIÿI€I�I‚IƒI„I…I†I‡IˆI‰IŠI‹IŒI�IŽI�I�I‘I’I“I”I•I–I—I˜I™IšI›IœI�IžIŸI I¡I¢I£I¤I¥I¦I§I¨I©IªI«I¬I­I®I¯I°I±I²I³I´IµI¶I·I¸I¹IºI»I¼I½I¾I¿IÀIÁIÂIÃIÄIÅIÆIÇIÈIÉIÊIËIÌIÍIÎIÏIÐIÑIÒIÓIÔIÕIÖI×IØIÙIÚIÛIÜIÝIÞIßIàIáIâIãIäIåIæIçIèIéIêIëIìIíIîIïIðIñIòIóIôIõIöI÷IøIùIúIûIüIýIþIÿI€I�I‚IƒI„I…I†I‡IˆI‰IŠI‹IŒI�IŽI�I�I‘I’I“I”I•I–I—I˜I™IšI›IœI�IžIŸI I¡I¢I£I¤J¥J¦J§J¨J©JªJ«J¬J­J®J¯J°J±J²J³J´JµJ¶J·J¸J¹JºJ»J¼J½J¾J¿JÀJÁJÂJÃJÄJÅJÆJÇJÈJÉJÊJËJÌJÍJÎJÏJÐJÑJÒJÓJÔJÕJÖK×KØKÙKÚKÛKÜKÝKÞKßKàKáKâKãKäKåKæKçKèKéKêLëLìLíLîLïLðLñLòLóLôLõLöL÷LøLùLúLûLüLýLþLÿL€L�L‚LƒL„L…L†L‡LˆL‰LŠL‹LŒL�LŽL�L�L‘L’L“L”L•L–L—L˜L™LšL›LœL�LžLŸL L¡L¢L£L¤L¥L¦L§L¨L©LªL«L¬L­L®L¯L°L±L²L³L´LµL¶L·L¸M¹MºM»M¼M½M¾M¿MÀMÁMÂMÃMÄMÅMÆMÇMÈMÉMÊMËMÌMÍMÎMÏMÐMÑMÒMÓMÔMÕMÖM×MØMÙMÚMÛMÜMÝMÞMßMàMáMâMãMäMåMæMçMèMéMêMëMìMíMîMïMðMñMòMóMôMõMöM÷MøMùMúMûMüMýMþMÿM€M�M‚MƒM„M…M†M‡MˆM‰MŠM‹MŒM�MŽM�M�M‘M’M“M”M•M–M—M˜M™MšM›MœM�MžMŸM M¡M¢M£M¤M¥M¦M§M¨M©MªM«M¬M­M®M¯M°M±M²M³M´MµM¶M·M¸M¹MºM»M¼M½M¾M¿MÀMÁMÂMÃMÄMÅMÆMÇMÈMÉMÊMËMÌMÍMÎMÏMÐMÑMÒMÓMÔMÕMÖM×MØMÙMÚMÛMÜMÝMÞMßMàNáNâNãNäNåNæNçNèNéNêNëNìNíNîNïNðNñNòNóNôNõNöN÷NøNùNúNûNüNýNþNÿN€N�N‚NƒN„N…N†N‡NˆN‰NŠN‹NŒN�NŽN�N�N‘N’N“N”N•N–N—N˜N™NšN›NœN�NžNŸN N¡N¢N£N¤N¥N¦N§N¨N©NªN«N¬N­N®O¯O°O±O²O³O´OµO¶O·O¸O¹OºO»O¼O½O¾O¿OÀOÁOÂOÃOÄOÅOÆOÇOÈOÉOÊOËOÌOÍOÎOÏOÐOÑOÒOÓOÔOÕOÖO×OØOÙOÚOÛPÜPÝPÞPßPàPáPâPãPäPåPæPçPèPéPêPëPìPíPîPïPðPñPòPóPôPõQöQ÷QøQùQúQûQüQýQþQÿQ€Q�Q‚QƒQ„Q…Q†Q‡QˆQ‰QŠQ‹QŒQ�QŽQ�Q�Q‘R’R“R”R•R–R—R˜R™RšR›RœR�RžRŸR R¡R¢R£R¤R¥R¦R§R¨R©RªR«R¬R­R®R¯R°R±R²R³R´RµR¶R·R¸R¹RºR»R¼R½R¾R¿RÀRÁRÂRÃRÄRÅRÆRÇRÈRÉRÊRËRÌRÍRÎRÏRÐRÑRÒRÓRÔRÕRÖR×RØRÙRÚRÛRÜRÝRÞRßRàRáRâRãRäRåRæRçRèRéRêRëRìRíRîRïRðRñRòRóRôRõRöR÷RøRùRúRûRüRýRþRÿR€R�R‚RƒR„R…R†R‡RˆR‰RŠR‹RŒS�SŽS�S�S‘S’S“S”S•S–S—S˜S™SšS›SœT�TžTŸT T¡T¢T£T¤T¥T¦T§T¨T©TªT«T¬T­T®T¯T°T±T²T³T´TµT¶T·T¸T¹TºT»T¼T½T¾T¿TÀTÁTÂTÃTÄTÅTÆTÇTÈTÉTÊTËTÌTÍTÎTÏTÐTÑTÒTÓTÔTÕTÖT×TØTÙTÚTÛTÜTÝTÞTßTàTáTâTãTäTåTæTçTèTéTêTëTìTíTîTïTðTñTòTóTôTõTöT÷TøTùTúTûTüTýTþTÿT€T�T‚TƒT„T…T†T‡TˆT‰TŠT‹TŒT�TŽT�T�T‘T’T“T”T•T–T—T˜T™TšT›TœT�TžTŸT T¡T¢T£T¤T¥T¦T§T¨T©TªT«T¬T­T®T¯T°T±T²T³T´TµT¶T·T¸T¹TºT»T¼T½T¾T¿TÀTÁTÂTÃTÄTÅTÆTÇTÈTÉTÊTËTÌTÍTÎTÏTÐTÑTÒTÓTÔTÕTÖT×TØTÙTÚTÛTÜTÝTÞTßTàTáTâTãTäTåTæUçUèUéUêUëUìUíUîUïUðUñUòUóUôUõUöU÷UøUùUúUûUüUýUþUÿU€U�U‚UƒU„U…U†U‡UˆU‰UŠU‹UŒU�UŽU�U�U‘U’U“U”U•U–U—U˜U™UšU›UœU�UžUŸU U¡U¢U£U¤U¥U¦U§U¨U©UªU«U¬U­U®U¯U°U±U²U³U´UµU¶U·U¸U¹UºU»U¼U½U¾U¿UÀUÁUÂUÃUÄUÅUÆUÇUÈUÉUÊUËUÌUÍUÎUÏUÐUÑUÒUÓUÔUÕUÖU×UØUÙUÚUÛUÜUÝUÞUßUàUáUâUãUäUåUæUçUèUéVêVëVìVíVîVïVðVñVòVóVôVõVöV÷VøVùVúVûWüWýWþWÿW€W�W‚WƒW„W…W†W‡WˆW‰WŠW‹WŒW�WŽW�W�W‘W’W“W”W•W–W—W˜W™WšW›WœW�WžWŸW W¡W¢W£W¤W¥W¦W§W¨W©WªW«W¬W­W®W¯W°W±W²W³W´WµW¶W·W¸W¹WºW»W¼W½W¾W¿WÀWÁWÂWÃWÄWÅWÆWÇWÈWÉWÊWËWÌWÍWÎWÏWÐWÑWÒWÓWÔWÕWÖW×WØWÙWÚWÛWÜWÝWÞWßWàWáWâWãWäWåWæWçWèWéWêWëWìWíWîWïWðWñWòWóWôWõWöW÷WøWùWúWûWüWýWþWÿW€W�W‚WƒW„W…W†W‡WˆW‰WŠW‹WŒW�WŽW�W�W‘W’X“Y”Y•Z–Z—Z˜Z™ZšZ›ZœZ�ZžZŸZ Z¡Z¢Z£Z¤Z¥Z¦Z§Z¨Z©ZªZ«Z¬Z­Z®Z¯Z°Z±Z²Z³Z´ZµZ¶Z·Z¸Z¹ZºZ»Z¼Z½Z¾Z¿ZÀZÁZÂZÃZÄZÅZÆZÇZÈZÉZÊZËZÌZÍZÎZÏZÐZÑZÒZÓZÔZÕZÖZ×ZØZÙZÚZÛZÜZÝZÞZßZàZáZâZãZäZåZæZçZèZéZêZëZìZíZîZïZðZñZòZóZôZõZöZ÷ZøZùZúZûZüZýZþZÿZ€ Z� Z‚ Zƒ Z„ Z… Z† Z‡ Zˆ Z‰ ZŠ Z‹ [Œ [� [Ž \� ]� ]‘ ]’ ]“ ]” ]• ]– ]— ]˜ ]™ ]š ]› ]œ ]� ]ž ]Ÿ ]  ]¡ ]¢ ]£ ]¤ ]¥ ]¦ ]§ ]¨ ]© ]ª ]« ]¬ ]­ ]® ]¯ ]° ]± ]² ]³ ]´ ]µ ]¶ ]· ]¸ ]¹ ]º ]» ]¼ ]½ ]¾ ]¿ ]À ]Á ] ]à ]Ä ]Å ]Æ ]Ç ]È ]É ]Ê ]Ë ]Ì ]Í ]Î ]Ï ]Ð ]Ñ ]Ò ]Ó ]Ô ]Õ ]Ö ]× ]Ø ]Ù ]Ú ]Û ]Ü ]Ý ]Þ ]ß ]à ]á ]â ]ã ]ä ]å ]æ ]ç ]è ]é ]ê ]ë ]ì ]í ]î ]ï ]ð ]ñ ]ò ]ó ]ô ]õ ]ö ]÷ ]ø ]ù ]ú ]û ]ü ]ý ]þ ]ÿ ]€!]�!]‚!]ƒ!]„!]…!]†!]‡!]ˆ!]‰!]Š!]‹!]Œ!]�!]Ž!]�!]�!]‘!]’!^“!^”!^•!^–!^—!^˜!^™!^š!^›!^œ!^�!^ž!^Ÿ!^ !^¡!^¢!^£!^¤!^¥!^¦!^§!^¨!^©!^ª!^«!^¬!^­!^®!^¯!^°!^±!^²!^³!^´!^µ!^¶!^·!^¸!^¹!^º!^»!^¼!^½!^¾!^¿!^À!^Á!^Â!^Ã!^Ä!^Å!^Æ!^Ç!^È!^É!^Ê!^Ë!^Ì!^Í!^Î!^Ï!^Ð!^Ñ!^Ò!^Ó!^Ô!^Õ!^Ö!^×!^Ø!^Ù!^Ú!^Û!^Ü!^Ý!^Þ!^ß!^à!^á!^â!^ã!^ä!^å!^æ!^ç!^è!^é!^ê!^ë!^ì!^í!^î!^ï!^ð!_ñ!_ò!_ó!_ô!_õ!_ö!_÷!_ø!_ù!_ú!_û!_ü!_ý!_þ!`ÿ!`€"`�"`‚"`ƒ"`„"`…"`†"`‡"`ˆ"`‰"`Š"`‹"`Œ"`�"`Ž"`�"`�"`‘"`’"`“"`”"`•"`–"`—"`˜"`™"`š"`›"`œ"`�"`ž"`Ÿ"` "`¡"`¢"`£"`¤"`¥"`¦"`§"`¨"`©"`ª"`«"`¬"`­"`®"`¯"`°"`±"`²"`³"`´"`µ"`¶"`·"`¸"`¹"`º"`»"`¼"`½"`¾"`¿"`À"`Á"`Â"`Ã"`Ä"`Å"`Æ"`Ç"`È"`É"`Ê"`Ë"`Ì"`Í"`Î"`Ï"`Ð"`Ñ"`Ò"`Ó"`Ô"aÕ"aÖ"a×"aØ"aÙ"bÚ"bÛ"bÜ"bÝ"bÞ"bß"bà"bá"bâ"bã"bä"bå"bæ"bç"bè"bé"bê"bë"bì"bí"bî"bï"bð"cñ"cò"có"cô"cõ"cö"c÷"cø"cù"cú"cû"cü"cý"cþ"cÿ"c€#c�#c‚#cƒ#c„#c…#c†#c‡#cˆ#c‰#dŠ#d‹#dŒ#d�#dŽ#d�#d�#d‘#d’#d“#d”#d•#d–#d—#d˜#d™#dš#d›#eœ#e�#ež#eŸ#e #e¡#e¢#e£#e¤#e¥#e¦#e§#e¨#e©#eª#e«#e¬#e­#e®#e¯#e°#e±#e²#e³#e´#eµ#e¶#e·#e¸#e¹#eº#e»#e¼#e½#e¾#e¿#eÀ#eÁ#eÂ#eÃ#eÄ#eÅ#eÆ#eÇ#eÈ#eÉ#eÊ#eË#eÌ#eÍ#eÎ#eÏ#eÐ#eÑ#eÒ#fÓ#fÔ#fÕ#fÖ#f×#fØ#fÙ#fÚ#fÛ#fÜ#fÝ#fÞ#fß#fà#fá#fâ#fã#fä#få#fæ#fç#fè#fé#fê#fë#fì#fí#fî#fï#fð#fñ#fò#fó#fô#fõ#fö#f÷#fø#fù#fú#fû#fü#fý#fþ#fÿ#f€$f�$f‚$fƒ$f„$f…$f†$f‡$fˆ$f‰$fŠ$f‹$fŒ$f�$fŽ$f�$f�$f‘$f’$f“$f”$f•$f–$f—$f˜$f™$fš$g›$gœ$g�$gž$gŸ$g $g¡$g¢$g£$g¤$g¥$g¦$g§$g¨$g©$gª$g«$g¬$g­$g®$g¯$g°$g±$g²$g³$g´$gµ$g¶$g·$g¸$g¹$gº$g»$g¼$g½$g¾$g¿$gÀ$gÁ$gÂ$gÃ$gÄ$gÅ$gÆ$gÇ$gÈ$gÉ$gÊ$gË$gÌ$gÍ$gÎ$gÏ$gÐ$gÑ$gÒ$gÓ$gÔ$gÕ$gÖ$g×$gØ$gÙ$gÚ$gÛ$gÜ$gÝ$gÞ$gß$gà$gá$gâ$gã$gä$gå$gæ$gç$gè$gé$gê$gë$gì$gí$gî$gï$gð$gñ$gò$gó$gô$gõ$gö$g÷$gø$gù$gú$gû$hü$iý$iþ$iÿ$i€%i�%i‚%iƒ%i„%i…%i†%i‡%iˆ%i‰%iŠ%i‹%iŒ%i�%iŽ%i�%i�%i‘%i’%i“%i”%i•%i–%i—%i˜%i™%iš%i›%iœ%i�%iž%iŸ%i %i¡%i¢%i£%i¤%i¥%i¦%i§%i¨%i©%iª%i«%i¬%i­%i®%i¯%i°%i±%i²%i³%i´%iµ%i¶%i·%i¸%i¹%iº%i»%i¼%i½%i¾%i¿%iÀ%iÁ%iÂ%iÃ%iÄ%iÅ%iÆ%iÇ%iÈ%iÉ%iÊ%iË%iÌ%iÍ%iÎ%iÏ%iÐ%iÑ%iÒ%iÓ%iÔ%iÕ%iÖ%i×%iØ%iÙ%iÚ%iÛ%iÜ%iÝ%iÞ%iß%ià%iá%iâ%iã%iä%iå%iæ%iç%iè%ié%iê%ië%iì%ií%iî%iï%ið%iñ%iò%ió%iô%iõ%iö%j÷%jø%jù%jú%jû%jü%jý%jþ%jÿ%j€&j�&j‚&jƒ&j„&j…&j†&j‡&jˆ&j‰&jŠ&j‹&jŒ&j�&jŽ&j�&j�&j‘&j’&j“&j”&j•&j–&j—&j˜&j™&jš&j›&jœ&j�&jž&jŸ&j &j¡&j¢&j£&j¤&j¥&j¦&j§&j¨&k©&kª&k«&k¬&k­&k®&k¯&k°&k±&k²&k³&k´&kµ&k¶&k·&k¸&k¹&kº&k»&k¼&k½&k¾&k¿&kÀ&kÁ&kÂ&kÃ&kÄ&kÅ&kÆ&kÇ&kÈ&kÉ&kÊ&kË&kÌ&kÍ&kÎ&kÏ&kÐ&kÑ&kÒ&kÓ&kÔ&kÕ&kÖ&k×&kØ&kÙ&kÚ&kÛ&kÜ&kÝ&kÞ&kß&kà&ká&kâ&kã&kä&kå&kæ&kç&kè&ké&kê&kë&kì&kí&kî&kï&kð&kñ&kò&kó&kô&kõ&kö&k÷&kø&kù&kú&kû&kü&ký&kþ&kÿ&k€'k�'k‚'kƒ'k„'k…'k†'k‡'kˆ'k‰'kŠ'k‹'kŒ'k�'kŽ'k�'k�'k‘'k’'k“'k”'k•'k–'k—'k˜'k™'kš'k›'kœ'k�'kž'kŸ'k 'k¡'k¢'k£'k¤'k¥'k¦'k§'k¨'k©'kª'k«'k¬'k­'k®'k¯'k°'k±'k²'k³'k´'kµ'k¶'k·'k¸'k¹'kº'k»'k¼'k½'k¾'k¿'kÀ'kÁ'kÂ'kÃ'kÄ'kÅ'kÆ'kÇ'kÈ'kÉ'kÊ'kË'kÌ'kÍ'kÎ'kÏ'kÐ'kÑ'kÒ'kÓ'kÔ'kÕ'kÖ'k×'kØ'kÙ'kÚ'kÛ'kÜ'kÝ'kÞ'kß'kà'ká'kâ'kã'kä'kå'kæ'kç'kè'ké'kê'kë'kì'kí'kî'kï'kð'kñ'kò'kó'kô'kõ'kö'k÷'kø'kù'kú'kû'kü'ký'kþ'kÿ'k€(k�(k‚(kƒ(k„(k…(k†(k‡(kˆ(k‰(kŠ(k‹(kŒ(k�(kŽ(k�(k�(k‘(k’(k“(k”(k•(k–(k—(k˜(k™(kš(k›(kœ(k�(kž(kŸ(k (k¡(k¢(k£(k¤(k¥(k¦(k§(k¨(k©(kª(k«(k¬(k­(k®(k¯(k°(k±(k²(k³(k´(kµ(k¶(k·(k¸(k¹(kº(k»(k¼(k½(k¾(k¿(kÀ(kÁ(kÂ(kÃ(kÄ(kÅ(kÆ(kÇ(kÈ(kÉ(kÊ(kË(kÌ(kÍ(kÎ(kÏ(kÐ(kÑ(kÒ(kÓ(kÔ(kÕ(kÖ(k×(kØ(kÙ(kÚ(kÛ(kÜ(kÝ(kÞ(kß(kà(ká(kâ(kã(kä(kå(kæ(kç(kè(ké(kê(kë(kì(kí(kî(kï(kð(kñ(kò(kó(kô(kõ(kö(k÷(kø(kù(kú(kû(kü(ký(kþ(kÿ(k€)k�)k‚)kƒ)k„)k…)k†)k‡)kˆ)k‰)kŠ)k‹)kŒ)k�)kŽ)k�)k�)k‘)k’)k“)k”)k•)k–)k—)k˜)k™)kš)k›)kœ)k�)kž)kŸ)k )k¡)k¢)k£)k¤)k¥)k¦)k§)k¨)k©)kª)k«)k¬)l­)l®)l¯)l°)l±)l²)l³)l´)lµ)l¶)l·)l¸)l¹)lº)l»)l¼)l½)l¾)l¿)lÀ)lÁ)lÂ)lÃ)lÄ)lÅ)lÆ)lÇ)lÈ)lÉ)lÊ)lË)lÌ)lÍ)lÎ)lÏ)lÐ)lÑ)lÒ)lÓ)lÔ)lÕ)lÖ)l×)lØ)lÙ)lÚ)lÛ)lÜ)lÝ)lÞ)lß)là)lá)lâ)lã)lä)lå)læ)lç)lè)lé)lê)lë)lì)lí)lî)lï)lð)lñ)lò)ló)lô)lõ)lö)l÷)lø)lù)lú)lû)lü)lý)lþ)lÿ)l€*l�*m‚*mƒ*m„*m…*m†*m‡*mˆ*m‰*mŠ*m‹*mŒ*m�*mŽ*m�*m�*m‘*m’*m“*m”*m•*m–*m—*m˜*m™*mš*m›*mœ*m�*mž*mŸ*m *m¡*m¢*m£*m¤*m¥*m¦*m§*m¨*m©*mª*m«*m¬*m­*m®*m¯*n°*n±*n²*n³*n´*nµ*n¶*n·*n¸*n¹*nº*n»*n¼*n½*n¾*n¿*nÀ*nÁ*nÂ*nÃ*nÄ*nÅ*nÆ*nÇ*nÈ*nÉ*nÊ*nË*nÌ*nÍ*nÎ*nÏ*nÐ*nÑ*nÒ*nÓ*nÔ*nÕ*nÖ*n×*nØ*nÙ*nÚ*nÛ*nÜ*nÝ*nÞ*nß*nà*ná*nâ*nã*nä*oå*oæ*oç*oè*oé*oê*oë*oì*oí*oî*oï*oð*oñ*oò*oó*oô*oõ*oö*o÷*oø*où*oú*oû*oü*oý*oþ*oÿ*o€+o�+o‚+oƒ+o„+o…+o†+o‡+oˆ+o‰+oŠ+o‹+oŒ+o�+oŽ+o�+o�+o‘+o’+o“+o”+o•+o–+o—+o˜+o™+oš+p›+pœ+p�+pž+pŸ+p +p¡+p¢+p£+p¤+p¥+p¦+p§+p¨+p©+pª+p«+p¬+p­+p®+p¯+p°+p±+p²+p³+p´+pµ+p¶+p·+p¸+p¹+pº+p»+p¼+p½+p¾+p¿+pÀ+pÁ+pÂ+pÃ+pÄ+pÅ+pÆ+pÇ+pÈ+pÉ+pÊ+qË+qÌ+qÍ+qÎ+qÏ+qÐ+qÑ+qÒ+qÓ+qÔ+qÕ+qÖ+q×+qØ+qÙ+qÚ+qÛ+qÜ+qÝ+qÞ+qß+qà+qá+qâ+qã+qä+qå+qæ+qç+qè+qé+qê+që+qì+qí+qî+qï+qð+qñ+rò+ró+rô+rõ+rö+r÷+rø+rù+rú+rû+rü+rý+rþ+rÿ+r€,r�,r‚,rƒ,r„,r…,r†,r‡,rˆ,r‰,rŠ,r‹,rŒ,r�,rŽ,r�,r�,r‘,r’,r“,s”,s•,s–,s—,s˜,s™,sš,s›,sœ,s�,sž,sŸ,s ,s¡,s¢,s£,s¤,s¥,s¦,t§,t¨,t©,tª,t«,t¬,t­,t®,t¯,t°,t±,t²,t³,t´,tµ,t¶,t·,t¸,t¹,tº,t»,t¼,t½,t¾,t¿,tÀ,tÁ,tÂ,tÃ,tÄ,tÅ,tÆ,tÇ,tÈ,tÉ,tÊ,tË,tÌ,tÍ,tÎ,tÏ,tÐ,tÑ,tÒ,tÓ,tÔ,tÕ,tÖ,t×,tØ,tÙ,tÚ,tÛ,tÜ,tÝ,tÞ,tß,tà,tá,tâ,tã,tä,tå,tæ,tç,tè,té,tê,të,tì,tí,tî,tï,tð,tñ,tò,tó,tô,tõ,tö,t÷,tø,tù,tú,tû,tü,tý,tþ,tÿ,t€-t�-t‚-tƒ-t„-t…-t†-t‡-tˆ-u‰-uŠ-u‹-uŒ-u�-uŽ-u�-u�-u‘-u’-u“-u”-u•-u–-u—-u˜-u™-uš-u›-uœ-u�-už-uŸ-u -u¡-u¢-u£-u¤-u¥-u¦-u§-u¨-u©-uª-u«-u¬-u­-u®-u¯-u°-u±-u²-u³-u´-uµ-u¶-u·-u¸-u¹-uº-u»-u¼-u½-u¾-u¿-uÀ-uÁ-uÂ-uÃ-uÄ-uÅ-uÆ-uÇ-uÈ-uÉ-uÊ-uË-uÌ-uÍ-uÎ-uÏ-uÐ-uÑ-uÒ-uÓ-uÔ-vÕ-vÖ-v×-vØ-vÙ-vÚ-vÛ-vÜ-vÝ-vÞ-vß-và-vá-vâ-vã-vä-vå-væ-vç-vè-vé-vê-vë-vì-ví-vî-vï-vð-vñ-vò-vó-vô-võ-vö-v÷-vø-vù-vú-vû-vü-vý-vþ-vÿ-v€.v�.v‚.vƒ.v„.v….v†.v‡.vˆ.v‰.vŠ.w‹.wŒ.w�.wŽ.w�.w�.w‘.w’.w“.w”.w•.w–.w—.w˜.w™.wš.w›.wœ.w�.wž.wŸ.w .w¡.w¢.w£.w¤.w¥.w¦.w§.w¨.w©.wª.x«.x¬.x­.x®.x¯.x°.x±.x².x³.x´.xµ.x¶.x·.x¸.x¹.xº.x».x¼.x½.x¾.x¿.xÀ.xÁ. Â. Ã. Ä. Å. Æ. Ç. È. É. Ê. Ë.yÌ.yÍ.yÎ.yÏ.yÐ.yÑ.yÒ.yÓ.yÔ.yÕ.yÖ.y×.yØ.yÙ.yÚ.yÛ.yÜ.yÝ.yÞ.yß.yà.yá.yâ.yã.yä.yå.yæ.yç.yè.yé.yê.yë.yì.yí.yî.yï.yð.yñ.yò.yó.yô.yõ.yö.y÷.yø.yù.yú.yû.yü.yý.yþ.yÿ.y€/y�/y‚/yƒ/y„/y…/y†/y‡/yˆ/y‰/yŠ/y‹/yŒ/y�/yŽ/y�/y�/y‘/y’/y“/y”/y•/y–/y—/y˜/y™/yš/y›/yœ/y�/yž/yŸ/y /y¡/y¢/y£/y¤/y¥/y¦/y§/y¨/y©/yª/y«/y¬/y­/y®/y¯/y°/y±/y²/y³/y´/yµ/y¶/y·/y¸/y¹/yº/y»/y¼/y½/y¾/y¿/yÀ/yÁ/yÂ/yÃ/yÄ/yÅ/yÆ/yÇ/yÈ/yÉ/yÊ/yË/yÌ/yÍ/yÎ/yÏ/yÐ/yÑ/yÒ/yÓ/yÔ/yÕ/yÖ/y×/yØ/yÙ/yÚ/yÛ/yÜ/yÝ/yÞ/yß/yà/yá/yâ/yã/yä/yå/yæ/yç/yè/yé/yê/yë/yì/yí/yî/yï/yð/yñ/yò/yó/yô/yõ/yö/y÷/yø/yù/yú/yû/yü/yý/yþ/yÿ/y€0y�0y‚0yƒ0y„0y…0y†0y‡0yˆ0y‰0yŠ0y‹0yŒ0y�0yŽ0y�0y�0y‘0y’0y“0y”0y•0y–0y—0y˜0y™0yš0y›0yœ0y�0yž0yŸ0y 0y¡0y¢0y£0y¤0y¥0y¦0y§0y¨0y©0yª0y«0y¬0y­0y®0y¯0y°0y±0y²0y³0y´0yµ0y¶0y·0y¸0y¹0yº0y»0y¼0y½0y¾0y¿0yÀ0yÁ0yÂ0yÃ0yÄ0yÅ0yÆ0yÇ0yÈ0yÉ0yÊ0yË0yÌ0yÍ0yÎ0yÏ0yÐ0yÑ0yÒ0yÓ0yÔ0yÕ0yÖ0y×0yØ0yÙ0yÚ0yÛ0yÜ0yÝ0yÞ0yß0yà0yá0yâ0yã0yä0yå0yæ0yç0yè0yé0yê0yë0yì0yí0yî0yï0yð0yñ0yò0yó0yô0yõ0yö0y÷0yø0yù0yú0yû0yü0yý0yþ0yÿ0y€1y�1y‚1yƒ1y„1y…1y†1y‡1yˆ1y‰1yŠ1y‹1yŒ1y�1yŽ1y�1y�1y‘1y’1y“1y”1y•1y–1y—1y˜1y™1zš1z›1zœ1z�1zž1zŸ1z 1z¡1z¢1z£1z¤1z¥1z¦1z§1z¨1z©1zª1z«1z¬1z­1z®1z¯1z°1z±1z²1z³1z´1zµ1z¶1z·1z¸1z¹1zº1z»1z¼1z½1z¾1z¿1zÀ1zÁ1zÂ1zÃ1zÄ1zÅ1zÆ1zÇ1zÈ1zÉ1zÊ1zË1zÌ1zÍ1zÎ1zÏ1zÐ1zÑ1zÒ1zÓ1zÔ1zÕ1zÖ1z×1zØ1zÙ1zÚ1zÛ1zÜ1zÝ1zÞ1zß1zà1zá1zâ1zã1zä1zå1zæ1zç1zè1zé1zê1zë1zì1zí1zî1zï1zð1zñ1zò1zó1zô1zõ1zö1z÷1zø1zù1zú1zû1zü1zý1zþ1zÿ1z€2z�2z‚2zƒ2z„2z…2z†2z‡2zˆ2z‰2zŠ2z‹2zŒ2z�2zŽ2z�2z�2z‘2z’2z“2z”2z•2z–2z—2z˜2z™2zš2z›2zœ2z�2zž2zŸ2z 2z¡2z¢2z£2z¤2z¥2z¦2z§2z¨2z©2zª2z«2z¬2z­2z®2z¯2z°2z±2z²2z³2z´2zµ2z¶2z·2z¸2z¹2{º2{»2{¼2{½2{¾2{¿2{À2{Á2{Â2{Ã2{Ä2{Å2{Æ2{Ç2{È2{É2{Ê2{Ë2{Ì2{Í2{Î2{Ï2{Ð2{Ñ2{Ò2{Ó2{Ô2{Õ2{Ö2{×2{Ø2{Ù2{Ú2{Û2{Ü2{Ý2{Þ2{ß2{à2{á2{â2{ã2{ä2{å2{æ2{ç2{è2{é2{ê2{ë2{ì2{í2{î2{ï2{ð2{ñ2{ò2{ó2{ô2{õ2{ö2{÷2{ø2{ù2{ú2{û2{ü2{ý2{þ2{ÿ2{€3{�3{‚3{ƒ3{„3{…3{†3{‡3{ˆ3{‰3{Š3{‹3{Œ3{�3{Ž3{�3{�3{‘3{’3{“3{”3{•3{–3{—3{˜3{™3{š3{›3{œ3{�3{ž3{Ÿ3{ 3{¡3{¢3{£3{¤3{¥3{¦3{§3{¨3{©3{ª3{«3{¬3{­3{®3{¯3{°3{±3{²3{³3{´3{µ3{¶3{·3{¸3|¹3|º3|»3|¼3|½3|¾3|¿3|À3|Á3|Â3|Ã3|Ä3|Å3|Æ3|Ç3|È3|É3|Ê3|Ë3|Ì3|Í3}Î3}Ï3}Ð3}Ñ3}Ò3}Ó3}Ô3}Õ3}Ö3}×3}Ø3}Ù3}Ú3}Û3}Ü3}Ý3}Þ3}ß3}à3}á3}â3}ã3}ä3}å3}æ3}ç3}è3}é3}ê3}ë3}ì3}í3}î3}ï3}ð3}ñ3}ò3}ó3}ô3}õ3}ö3}÷3}ø3}ù3}ú3}û3}ü3}ý3}þ3}ÿ3~€4~�4~‚4~ƒ4~„4~…4~†4~‡4~ˆ4~‰4~Š4~‹4~Œ4~�4~Ž4~�4~�4~‘4~’4~“4~”4~•4~–4~—4~˜4~™4~š4~›4~œ4~�4~ž4Ÿ4 4¡4¢4£4¤4¥4¦4§4¨4©4ª4«4¬4­4®4¯4°4±4²4³4´4µ4¶4·4¸4¹4º4»4¼4½4¾4¿4À4Á4Â4Ã4Ä4Å4Æ4Ç4È4É4€Ê4€Ë4€Ì4€Í4€Î4€Ï4€Ð4€Ñ4€Ò4€Ó4€Ô4€Õ4€Ö4€×4€Ø4€Ù4€Ú4€Û4€Ü4€Ý4€Þ4€ß4€à4€á4�â4�ã4�ä4�å4‚æ4‚ç4‚è4‚é4‚ê4‚ë4‚ì4‚í4‚î4‚ï4‚ð4‚ñ4‚ò4‚ó4‚ô4‚õ4‚ö4‚÷4‚ø4‚ù4‚ú4‚û4‚ü4‚ý4‚þ4‚ÿ4ƒ€5ƒ�5ƒ‚5ƒƒ5ƒ„5ƒ…5ƒ†5ƒ‡5ƒˆ5ƒ‰5ƒŠ5ƒ‹5ƒŒ5ƒ�5ƒŽ5„�5„�5…‘5…’5…“5…”5…•5…–5…—5…˜5…™5…š5…›5…œ5…�5…ž5…Ÿ5… 5…¡5…¢5…£5…¤5…¥5†¦5†§5†¨5†©5‡ª5‡«5‡¬5‡­5‡®5ˆ¯5ˆ°5ˆ±5ˆ²5ˆ³5ˆ´5ˆµ5ˆ¶5ˆ·5ˆ¸5ˆ¹5ˆº5ˆ»5‰¼5‰½5‰¾5‰¿5‰À5‰Á5‰Â5‰Ã5‰Ä5‰Å5‰Æ5…Ç5…È5ŠÉ5ŠÊ5ŠË5ŠÌ5ŠÍ5ŠÎ5ŠÏ5ŠÐ5ŠÑ5ŠÒ5ŠÓ5ŠÔ5ŠÕ5ŠÖ5Š×5ŠØ5ŠÙ5ŠÚ5ŠÛ5ŠÜ5ŠÝ5ŠÞ5‹ß5‹à5‹á5‹â5‹ã5‹ä5‹å5‹æ5‹ç5‹è5‹é5‹ê5‹ë5‹ì5‹í5‹î5‹ï5‹ð5‹ñ5‹ò5‹ó5‹ô5Œõ5Œö5Œ÷5Œø5Œù5Œú5Œû5Œü5Œý5Œþ5Œÿ5Œ€6Œ�6Œ‚6Œƒ6Œ„6Œ…6Œ†6Œ‡6Œˆ6Œ‰6ŒŠ6Œ‹6ŒŒ6Œ�6ŒŽ6Œ�6Œ�6Œ‘6Œ’6Œ“6Œ”6Œ•6Œ–6Œ—6Œ˜6Œ™6Œš6Œ›6Œœ6Œ�6Œž6ŒŸ6Œ 6Œ¡6Œ¢6Œ£6Œ¤6Œ¥6Œ¦6Œ§6Œ¨6Œ©6Œª6Œ«6Œ¬6Œ­6Œ®6Œ¯6Œ°6Œ±6Œ²6Œ³6Œ´6Œµ6Œ¶6Œ·6Œ¸6Œ¹6Œº6Œ»6Œ¼6�½6�¾6�¿6�À6�Á6�Â6�Ã6�Ä6�Å6�Æ6�Ç6�È6�É6�Ê6�Ë6�Ì6�Í6�Î6�Ï6�Ð6�Ñ6�Ò6�Ó6�Ô6�Õ6�Ö6�×6�Ø6�Ù6�Ú6�Û6�Ü6�Ý6�Þ6�ß6�à6�á6�â6�ã6�ä6�å6�æ6�ç6�è6�é6�ê6�ë6�ì6�í6�î6�ï6�ð6�ñ6�ò6�ó6�ô6�õ6�ö6�÷6�ø6�ù6�ú6�û6�ü6�ý6�þ6�ÿ6�€7��7�‚7�ƒ7�„7�…7�†7�‡7�ˆ7�‰7�Š7�‹7�Œ7��7�Ž7��7��7�‘7�’7�“7�”7�•7�–7�—7�˜7�™7�š7�›7�œ7��7�ž7�Ÿ7� 7�¡7�¢7�£7�¤7�¥7�¦7�§7�¨7�©7�ª7�«7�¬7�­7�®7�¯7�°7�±7�²7�³7�´7�µ7�¶7�·7�¸7�¹7�º7�»7�¼7�½7�¾7�¿7�À7�Á7�Â7�Ã7�Ä7�Å7�Æ7�Ç7�È7�É7�Ê7�Ë7�Ì7�Í7�Î7�Ï7�Ð7�Ñ7�Ò7�Ó7�Ô7�Õ7�Ö7�×7�Ø7�Ù7�Ú7�Û7�Ü7�Ý7�Þ7�ß7�à7�á7�â7�ã7�ä7�å7�æ7�ç7�è7�é7�ê7�ë7�ì7�í7�î7�ï7�ð7�ñ7�ò7�ó7�ô7�õ7�ö7�÷7�ø7�ù7�ú7�û7�ü7�ý7�þ7�ÿ7�€8��8�‚8�ƒ8�„8�…8�†8�‡8�ˆ8�‰8�Š8�‹8�Œ8��8�Ž8��8��8�‘8�’8�“8�”8�•8�–8�—8�˜8�™8�š8�›8�œ8��8�ž8�Ÿ8� 8�¡8�¢8�£8�¤8�¥8�¦8�§8�¨8�©8�ª8�«8�¬8�­8�®8�¯8�°8�±8�²8�³8�´8�µ8�¶8�·8�¸8�¹8�º8�»8�¼8�½8�¾8�¿8�À8�Á8�Â8�Ã8�Ä8�Å8�Æ8�Ç8�È8�É8�Ê8�Ë8�Ì8�Í8�Î8�Ï8�Ð8�Ñ8�Ò8�Ó8�Ô8�Õ8�Ö8�×8�Ø8�Ù8�Ú8�Û8�Ü8�Ý8�Þ8�ß8�à8�á8�â8�ã8�ä8�å8�æ8�ç8�è8�é8�ê8�ë8�ì8�í8�î8�ï8�ð8�ñ8�ò8�ó8�ô8�õ8�ö8�÷8�ø8�ù8�ú8�û8�ü8�ý8�þ8�ÿ8�€9��9�‚9�ƒ9�„9�…9�†9�‡9�ˆ9�‰9�Š9�‹9�Œ9��9�Ž9��9��9�‘9�’9�“9�”9�•9�–9�—9�˜9�™9�š9�›9�œ9��9�ž9�Ÿ9� 9�¡9�¢9�£9�¤9�¥9�¦9�§9�¨9�©9�ª9�«9�¬9�­9�®9�¯9�°9�±9�²9�³9�´9�µ9�¶9�·9�¸9�¹9�º9�»9�¼9�½9�¾9�¿9�À9�Á9�Â9�Ã9�Ä9�Å9�Æ9�Ç9�È9�É9�Ê9�Ë9�Ì9�Í9�Î9�Ï9�Ð9�Ñ9�Ò9�Ó9�Ô9�Õ9�Ö9�×9�Ø9�Ù9�Ú9�Û9�Ü9�Ý9�Þ9�ß9�à9�á9�â9�ã9�ä9�å9�æ9�ç9�è9�é9�ê9�ë9�ì9�í9�î9�ï9�ð9�ñ9�ò9Žó9Žô9Žõ9Žö9Ž÷9Žø9Žù9Žú9�û9�ü9�ý9�þ9�ÿ9�€:��:�‚:�ƒ:�„:�…:�†:�‡:�ˆ:�‰:�Š:�‹:�Œ:��:�Ž:��:��:�‘:�’:�“:�”:�•:�–:�—:�˜:�™:�š:�›:�œ:��:�ž:�Ÿ:� :�¡:�¢:�£:�¤:�¥:�¦:�§:�¨:�©:�ª:�«:�¬:�­:�®:�¯:�°:�±:�²:�³:�´:�µ:�¶:�·:�¸:�¹:�º:�»:�¼:�½:�¾:�¿:�À:�Á:�Â:�Ã:�Ä:�Å:�Æ:�Ç:�È:�É:�Ê:�Ë:�Ì:�Í:�Î:�Ï:�Ð:�Ñ:�Ò:�Ó:�Ô:�Õ:�Ö:�×:�Ø:�Ù:�Ú:�Û:�Ü:�Ý:�Þ:�ß:�à:�á:�â:�ã:�ä:�å:�æ:�ç:�è:�é:�ê:�ë:�ì:�í:�î:�ï:�ð:�ñ:�ò:�ó:�ô:�õ:�ö:�÷:�ø:�ù:�ú:�û:�ü:�ý:�þ:�ÿ:�€;��;�‚;�ƒ;�„;�…;�†;�‡;�ˆ;�‰;�Š;�‹;‘Œ;‘�;‘Ž;‘�;‘�;‘‘;‘’;‘“;‘”;‘•;‘–;‘—;‘˜;‘™;‘š;‘›;‘œ;‘�;‘ž;‘Ÿ;‘ ;‘¡;‘¢;‘£;‘¤;‘¥;‘¦;‘§;‘¨;‘©;‘ª;‘«;‘¬;‘­;‘®;‘¯;‘°;‘±;‘²;‘³;‘´;’µ;’¶;’·;’¸;’¹;’º;’»;’¼;’½;’¾;’¿;’À;’Á;’Â;’Ã;’Ä;’Å;’Æ;’Ç;’È;’É;’Ê;’Ë;’Ì;’Í;’Î;’Ï;’Ð;’Ñ;’Ò;’Ó;’Ô;’Õ;’Ö;’×;’Ø;’Ù;’Ú;’Û;’Ü;’Ý;’Þ;’ß;’à;’á;“â;“ã;“ä;“å;“æ;“ç;“è;“é;“ê;“ë;“ì;“í;“î;“ï;“ð;“ñ;“ò;“ó;“ô;“õ;“ö;“÷;“ø;“ù;“ú;“û;“ü;“ý;“þ;“ÿ;“€<“�<“‚<“ƒ<“„<“…<“†<“‡<“ˆ<“‰<“Š<“‹<“Œ<“�<“Ž<“�<“�<“‘<“’<““<“”<“•<“–<“—<”˜<”™<”š<”›<”œ<”�<”ž<”Ÿ<” <”¡<”¢<”£<”¤<”¥<”¦<”§<”¨<”©<”ª<”«<”¬<”­<”®<”¯<”°<”±<”²<”³<”´<”µ<”¶<”·<”¸<”¹<”º<”»<”¼<”½<”¾<”¿<”À<”Á<”Â<”Ã<”Ä<”Å<”Æ<”Ç<”È<”É<•Ê<•Ë<•Ì<•Í<•Î<•Ï<•Ð<•Ñ<•Ò<•Ó<•Ô<•Õ<•Ö<•×<•Ø<•Ù<•Ú<•Û<•Ü<•Ý<•Þ<•ß<•à<•á<•â<•ã<•ä<–å<–æ<–ç<–è<–é<–ê<–ë<–ì<–í<–î<–ï<–ð<–ñ<–ò<–ó<–ô<–õ<–ö<–÷<–ø<–ù<–ú<–û<–ü<–ý<–þ<–ÿ<–€=–�=–‚=–ƒ=–„=–…=–†=–‡=–ˆ=–‰=–Š=–‹=–Œ=–�=–Ž=–�=–�=–‘=–’=–“=–”=–•=––=–—=–˜=–™=–š=–›=–œ=–�=–ž=–Ÿ=– =–¡=–¢=—£=—¤=—¥=—¦=—§=—¨=—©=—ª=—«=—¬=—­=—®=—¯=—°=—±=—²=—³=—´=—µ=—¶=—·=—¸=˜¹=˜º=˜»=˜¼=˜½=˜¾=˜¿=˜À=˜Á=˜Â=˜Ã=˜Ä=˜Å=˜Æ=˜Ç=˜È=˜É=˜Ê=˜Ë=˜Ì=˜Í=˜Î=˜Ï=˜Ð=˜Ñ=˜Ò=™Ó=™Ô=™Õ=™Ö=™×=™Ø=™Ù=™Ú=™Û=™Ü=™Ý=™Þ=™ß=™à=™á=™â=™ã=™ä=™å=™æ=™ç=™è=™é=™ê=™ë=™ì=™í=™î=™ï=™ð=™ñ=™ò=™ó=™ô=™õ=™ö=™÷=™ø=™ù=™ú=™û=™ü=™ý=™þ=™ÿ=™€>™�>™‚>™ƒ>™„>™…>™†>™‡>™ˆ>™‰>™Š>™‹>™Œ>™�>™Ž>™�>™�>™‘>™’>™“>™”>™•>™–>™—>™˜>™™>™š>™›>™œ>™�>™ž>™Ÿ>™ >™¡>™¢>™£>™¤>™¥>™¦>™§>™¨>™©>™ª>™«>™¬>™­>™®>™¯>™°>™±>™²>™³>™´>™µ>™¶>™·>™¸>™¹>™º>™»>™¼>™½>™¾>™¿>™À>™Á>™Â>™Ã>™Ä>™Å>™Æ>™Ç>™È>™É>™Ê>™Ë>™Ì>™Í>™Î>™Ï>™Ð>™Ñ>™Ò>™Ó>™Ô>™Õ>™Ö>™×>™Ø>™Ù>™Ú>™Û>™Ü>™Ý>™Þ>™ß>™à>™á>™â>™ã>™ä>™å>™æ>™ç>™è>™é>™ê>™ë>™ì>™í>™î>™ï>™ð>™ñ>™ò>™ó>™ô>™õ>™ö>™÷>™ø>™ù>™ú>™û>™ü>™ý>™þ>™ÿ>™€?™�?™‚?™ƒ?™„?™…?™†?™‡?™ˆ?™‰?™Š?™‹?™Œ?™�?™Ž?™�?™�?™‘?™’?™“?™”?™•?™–?™—?™˜?™™?™š?™›?™œ?™�?™ž?™Ÿ?™ ?™¡?™¢?™£?™¤?™¥?™¦?™§?™¨?™©?™ª?™«?™¬?™­?™®?™¯?™°?™±?™²?™³?™´?™µ?™¶?™·?™¸?™¹?™º?™»?™¼?™½?™¾?™¿?™À?™Á?™Â?™Ã?™Ä?™Å?™Æ?™Ç?™È?™É?™Ê?™Ë?™Ì?™Í?™Î?™Ï?™Ð?™Ñ?™Ò?™Ó?™Ô?™Õ?™Ö?™×?™Ø?™Ù?™Ú?™Û?™Ü?™Ý?™Þ?™ß?™à?™á?™â?™ã?™ä?™å?™æ?™ç?™è?™é?™ê?™ë?™ì?™í?™î?™ï?™ð?™ñ?™ò?™ó?™ô?™õ?™ö?™÷?™ø?™ù?™ú?™û?™ü?™ý?™þ?™ÿ?™€@™�@™‚@™ƒ@™„@™…@™†@™‡@™ˆ@™‰@™Š@™‹@™Œ@™�@™Ž@™�@™�@™‘@™’@™“@™”@™•@™–@™—@™˜@™™@™š@™›@™œ@™�@™ž@™Ÿ@™ @™¡@™¢@™£@™¤@™¥@™¦@™§@™¨@™©@™ª@™«@™¬@™­@™®@™¯@™°@™±@™²@™³@™´@™µ@™¶@™·@™¸@™¹@™º@™»@™¼@™½@™¾@™¿@™À@™Á@™Â@™Ã@™Ä@™Å@™Æ@™Ç@™È@™É@™Ê@™Ë@™Ì@™Í@™Î@šÏ@šÐ@šÑ@šÒ@šÓ@šÔ@šÕ@šÖ@š×@šØ@šÙ@šÚ@šÛ@šÜ@šÝ@šÞ@šß@šà@šá@šâ@šã@šä@šå@šæ@šç@šè@šé@šê@šë@šì@ší@šî@šï@šð@šñ@šò@šó@šô@šõ@šö@š÷@šø@šù@šú@šû@šü@šý@šþ@šÿ@š€Aš�Aš‚AšƒAš„Aš…Aš†Aš‡AšˆAš‰AšŠAš‹AšŒAš�AšŽAš�Aš�Aš‘Aš’Aš“Aš”Aš•Aš–Aš—Aš˜Aš™A›šA››A›œAœ�AœžAœŸAœ Aœ¡Aœ¢Aœ£Aœ¤Aœ¥Aœ¦Aœ§Aœ¨Aœ©AœªAœ«Aœ¬Aœ­Aœ®Aœ¯Aœ°Aœ±Aœ²Aœ³Aœ´AœµAœ¶Aœ·Aœ¸Aœ¹AœºAœ»Aœ¼Aœ½Aœ¾Aœ¿AœÀAœÁAœÂAœÃAœÄAœÅAœÆAœÇAœÈAœÉAœÊAœËAœÌAœÍAœÎAœÏAœÐAœÑAœÒA�ÓA�ÔA�ÕA�ÖA�×A�ØA�ÙA�ÚA�ÛA�ÜA�ÝA�ÞA�ßA�àA�áA�âA�ãA�äA�åA�æA�çA�èA�éA�êAžëAžìAžíAžîAžïAžðAžñAžòAžóAŸôAŸõAŸöAŸ÷AŸøAŸùAŸúAŸûAŸüAŸýAŸþAŸÿAŸ€BŸ�BŸ‚BŸƒBŸ„BŸ…BŸ†BŸ‡BŸˆBŸ‰BŸŠBŸ‹BŸŒBŸ�BŸŽBŸ�BŸ�BŸ‘BŸ’BŸ“BŸ”BŸ•BŸ–BŸ—BŸ˜B ™B šB ›B œB �B žB ŸB  B ¡B ¢B £B ¤B ¥B ¦B §B¨B©B¡ªB¡«B¡¬B¡­B¡®B¡¯B¡°B¡±B¡²B¡³B¡´B¡µB¡¶B¡·B¡¸B¡¹B¡ºB¡»B¡¼B¡½B¡¾B¡¿B¡ÀB¡ÁB¡ÂB¡ÃB¡ÄB¡ÅB¡ÆB¡ÇB¡ÈB¡ÉB¡ÊB¡ËB¡ÌB¡ÍB¡ÎB¡ÏB¡ÐB¡ÑB¡ÒB¡ÓB¡ÔB¡ÕB¡ÖB¡×B¡ØB¡ÙB¡ÚB¡ÛB¡ÜB¡ÝB¡ÞB¡ßB¡àB¡áB¡âB¡ãB¡äB¡åB¡æB¡çB¡èB¡éB¡êB¡ëB¢ìB¢íB¢îB¢ïB¢ðB¢ñB¢òB¢óB£ôB£õB£öB£÷B£øB£ùB£úB£ûB£üB£ýB£þB£ÿB£€C£�C£‚C£ƒC£„C£…C¤†C¤‡C¤ˆC¥‰C¥ŠC¦‹C¦ŒC¦�C¦ŽC¦�C¦�C¦‘C¦’C¦“C¦”C¦•C¦–C¦—C¦˜C¦™C¦šC¦›CœC�CžCŸC C¡C¢C£C¤C¥C¦C§C¨C©CªC«C¬C­C®C¯C°C±C²C³C´CµC¶C·C¸C¹CºC»C¼C½C¾C¿CÀCÁCÂCÃCÄCÅCÆCÇCÈCÉCÊCËCÌCÍCÎCÏCÐCÑCÒCÓCÔCÕCÖC×CØCÙCÚCÛCÜCÝCÞCßCàCáCâCãCäCåCæCçCèCéCêCëCìCíCîCïCðCñCòCóCôCõCöC÷CøCùCúCûCüCýCþCÿC€D�D‚DƒD„D…D†D‡DˆD‰DŠD‹DŒD�DŽDS�DS�DS‘DS’DS“DS”DS•DS–DS—DS˜DS™DSšDS›DSœDS�DSžDSŸDS DS¡DS¢DS£DS¤DS¥DS¦DS§DS¨DS©DSªDS«DS¬DS­DS®DS¯DS°DS±DS²DS³DS´DSµDS¶DS·DS¸DS¹DSºDS»DS¼DS½DS¾DS¿DSÀDSÁDSÂDSÃDSÄDSÅDSÆDSÇDSÈDSÉDSÊDSËDSÌDSÍDSÎDSÏDSÐDSÑDSÒDSÓDSÔDSÕDSÖDS×DSØDSÙDSÚDSÛDSÜDSÝDSÞDSßDSàDSáDSâDSãDSäDSåDSæDSçDSèDSéDSêDSëDSìDSíDSîDSïDSðDSñDSòDSóDSôDSõDSöDS÷DSøDSùDSúDSûDSüDSýDSþDSÿDS€ES�ES‚ESƒES„ES…ES†ES‡ESˆES‰ESŠES‹ESŒES�ESŽES�ES�ES‘ES’ES“ES”ES•ES–ES—ES˜ES™ESšES›ESœES�ESžESŸES ES¡ES¢ES£ES¤ES¥ES¦ES§ES¨ES©ESªES«ES¬ES­ES®ES¯ES°ES±ES²ES³ES´ESµES¶ES·ES¸ES¹ESºES»ES¼ES½ES¾ES¿ESÀESÁESÂESÃESÄESÅESÆESÇESÈESÉESÊESËESÌESÍESÎESÏESÐESÑESÒESÓESÔESÕESÖES×ESØESÙESÚESÛESÜESÝESÞESßESàESáESâESãESäESåESæESçESèESéESêESëESìESíESîESïESðESñESòESóESôESõESöES÷ESøESùESúESûESüESýESþESÿES€FS�FS‚FSƒFS„FS…FS†FS‡FSˆFS‰FSŠFS‹FSŒFS�FSŽFS�FS�FS‘FS’FS“FS”FS•FS–FS—FS˜FS™FSšFS›FSœFS�FSžFSŸFS FS¡FS¢FS£FS¤FS¥FS¦FS§FS¨FS©FSªFS«FS¬FS­FS®FS¯FS°FS±FS²FS³FS´FSµFS¶FS·FS¸FS¹FSºFS»FS¼FS½FS¾FS¿FSÀFSÁFSÂFSÃFSÄFSÅFSÆFSÇFSÈFSÉFSÊFSËFSÌFSÍFSÎFSÏFSÐFSÑFSÒFSÓFSÔFSÕFSÖFS×FSØFSÙFSÚFSÛFSÜFSÝFSÞFSßFSàFSáFSâFSãFSäFSåFSæFSçFSèFSéFSêFSëFSìFSíFSîFSïFSðFSñFSòFSóFSôFSõFSöFS÷FSøFSùFSúFSûFSüFSýFSþFSÿFS€GS�GS‚GSƒGS„GS…GS†GS‡GSˆGS‰GSŠGS‹GSŒGS�GSŽGS�GS�GS‘GS’GS“GS”GS•GS–GS—GS˜GS™GSšGS›GSœGS�GSžGSŸGS GS¡GS¢GS£GS¤GS¥GS¦GS§GS¨GS©GSªGS«GS¬GS­GS®GS¯GS°GS±GS²GS³GS´GSµGS¶GS·GS¸GS¹GSºGS»GS¼GS½GS¾GS¿GSÀGSÁGSÂGSÃGSÄGSÅGSÆGSÇGSÈGSÉGSÊGSËGSÌGSÍGSÎGSÏGSÐGSÑGSÒGSÓGSÔGSÕGSÖGS×GSØGSÙGSÚGSÛGSÜGSÝGSÞGSßGSàGSáGSâGSãGSäGSåGSæGSçGSèGSéGSêGSëGSìGSíGSîGSïGSðGSñGSòGSóGSôGSõGSöGS÷GSøGSùGSúGSûGSüGSýGSþGSÿGS€HS�HS‚HSƒHS„HS…HS†HS‡HSˆHS‰HSŠHS‹HSŒHS�HSŽHS�HS�HS‘HS’HS“HS”HS•HS–HS—HS˜HS™HSšHS›HSœHS�HSžHSŸHS HS¡HS¢HS£HS¤HS¥HS¦HS§HS¨HS©HSªHS«HS¬HS­HS®HS¯HS°HS±HS²HS³HS´HSµHS¶HS·HS¸HS¹HSºHS»HS¼HS½HS¾HS¿HSÀHSÁHSÂHSÃHSÄHSÅHSÆHSÇHSÈHSÉHSÊHSËHSÌHSÍHSÎHSÏHSÐHSÑHSÒHSÓHSÔHSÕHSÖHS×HSØHSÙHSÚHSÛHSÜHSÝHSÞHSßHSàHSáHSâHSãHSäHSåHSæHSçHSèHSéHSêHSëHSìHSíHSîHSïHSðHSñHSòHSóHSôHSõHSöHS÷HSøHSùHSúHSûHSüHSýHSþHSÿHS€IS�IS‚ISƒIS„IS…IS†IS‡ISˆIS‰ISŠIS‹ISŒIS�ISŽIS�IS�IS‘IS’IS“IS”IS•IS–IS—IS˜IS™ISšIS›ISœIS�ISžISŸIS IS¡IS¢IS£IS¤IS¥IS¦IS§IS¨IS©ISªIS«IS¬IS­IS®IS¯IS°IS±IS²IS³IS´ISµIS¶IS·IS¸IS¹ISºIS»IS¼IS½IS¾IS¿ISÀISÁISÂISÃISÄISÅISÆISÇISÈISÉISÊISËISÌISÍISÎISÏISÐISÑISÒISÓISÔISÕISÖIS×ISØISÙISÚISÛISÜISÝISÞISßISàISáISâISãISäISåISæISçISèISéISêISëISìISíISîISïISðISñISòISóISôISõISöIS÷ISøISùISúISûISüISýISþISÿIS€JS�JS‚JSƒJS„JS…JS†JS‡JSˆJS‰JSŠJS‹JSŒJS�JSŽJS�JS�JS‘JS’JS“JS”JS•JS–JS—JS˜JS™JSšJS›JSœJS�JSžJSŸJS JS¡JS¢JS£JS¤JS¥JS¦JS§JS¨JS©JSªJS«JS¬JS­JS®JS¯JS°JS±JS²JS³JS´JSµJS¶JS·JS¸JS¹JSºJS»JS¼JS½JS¾JS¿JSÀJSÁJSÂJSÃJSÄJSÅJSÆJSÇJSÈJSÉJSÊJSËJSÌJSÍJSÎJSÏJSÐJSÑJSÒJSÓJSÔJSÕJSÖJS×JSØJSÙJSÚJSÛJSÜJSÝJSÞJSßJSàJSáJSâJSãJSäJSåJSæJSçJSèJSéJSêJSëJSìJSíJSîJSïJSðJSñJSòJSóJSôJSõJSöJS÷JSøJSùJSúJSûJSüJSýJSþJSÿJS€KS�KS‚KSƒKS„KS…KS†KS‡KSˆKS‰KSŠKS‹KSŒKS�KSŽKS�KS�KS‘KS’KS“KS”KS•KS–KS—KS˜KS™KSšKS›KSœKS�KSžKSŸKS KS¡KS¢KS£KS¤KS¥KS¦KS§KS¨KS©KSªKS«KS¬KS­KS®KS¯KS°KS±KS²KS³KS´KSµKS¶KS·KS¸KS¹KSºKS»KS¼KS½KS¾KS¿KSÀKSÁKSÂKSÃKSÄKSÅKSÆKSÇKSÈKSÉKSÊKSËKSÌKSÍKSÎKSÏKSÐKSÑKSÒKSÓKSÔKSÕKSÖKS×KSØKSÙKSÚKSÛKSÜKSÝKSÞKSßKSàKSáKSâKSãKSäKSåKSæKSçKSèKSéKSêKSëKSìKSíKSîKSïKSðKSñKSòKSóKSôKSõKSöKS÷KSøKSùKSúKSûKSüKSýKSþKSÿKS€LS�LS‚LSƒLS„LS…LS†LS‡LSˆLS‰LSŠLS‹LSŒLS�LSŽLS�LS�LS‘LS’LS“LS”LS•LS–LS—LS˜LS™LSšLS›LSœLS�LSžLSŸLS LS¡LS¢LS£LS¤LS¥LS¦LS§LS¨LS©LSªLS«LS¬LS­LS®LS¯LS°LS±LS²LS³LS´LSµLS¶LS·LS¸LS¹LSºLS»LS¼LS½LS¾LS¿LSÀLSÁLSÂLSÃLSÄLSÅLSÆLSÇLSÈLSÉLSÊLSËLSÌLSÍLSÎLSÏLSÐLSÑLSÒLSÓLSÔLSÕLSÖLS×LSØLSÙLSÚLSÛLSÜLSÝLSÞLSßLSàLSáLSâLSãLSäLSåLSæLSçLSèLSéLSêLSëLSìLSíLSîLSïLSðLSñLSòLSóLSôLSõLSöLS÷LSøLSùLSúLSûLSüLSýLSþLSÿLS€MS�MS‚MSƒMS„MS…MS†MS‡MSˆMS‰MSŠMS‹MSŒMS�MSŽMS�MS�MS‘MS’MS“MS”MS•MS–MS—MS˜MS™MSšMS›MSœMS�MSžMSŸMS MS¡MS¢MS£MS¤MS¥MS¦MS§MS¨MS©MSªMS«MS¬MS­MS®MS¯MS°MS±MS²MS³MS´MSµMS¶MS·MS¸MS¹MSºMS»MS¼MS½MS¾MS¿MSÀMSÁMSÂMSÃMSÄMSÅMSÆMSÇMSÈMSÉMSÊMSËMSÌMSÍMSÎMSÏMSÐMSÑMSÒMSÓMSÔMSÕMSÖMS×MSØMSÙMSÚMSÛMSÜMSÝMSÞMSßMSàMSáMSâMSãMSäMSåMSæMSçMSèMSéMSêMSëMSìMSíMSîMSïMSðMSñMSòMSóMSôMSõMSöMS÷MSøMSùMSúMSûMSüMSýMSþMSÿMS€NS�NS‚NSƒNS„NS…NS†NS‡NSˆNS‰NSŠNS‹NSŒNS�NSŽNS�NS�NS‘NS’NS“NS”NS•NS–NS—NS˜NS™NSšNS›NSœNS�NSžNSŸNS NS¡NS¢NS£NS¤NS¥NS¦NS§NS¨NS©NSªNS«NS¬NS­NS®NS¯NS°NS±NS²NS³NS´NSµNS¶NS·NS¸NS¹NSºNS»NS¼NS½NS¾NS¿NSÀNSÁNSÂNSÃNSÄNSÅNSÆNSÇNSÈNSÉNSÊNSËNSÌNSÍNSÎNSÏNSÐNSÑNSÒNSÓNSÔNSÕNSÖNS×NSØNSÙNSÚNSÛNSÜNSÝNSÞNSßNSàNSáNSâNSãNSäNSåNSæNSçNSèNSéNSêNSëNSìNSíNSîNSïNSðNSñNSòNSóNSôNSõNSöNS÷NSøNSùNSúNSûNSüNSýNSþNSÿNS€OS�OS‚OSƒOS„OS…OS†OS‡OSˆOS‰OSŠOS‹OSŒOS�OSŽOS�OS�OS‘OS’OS“OS”OS•OS–OS—OS˜OS™OSšOS›OSœOS�OSžOSŸOS OS¡OS¢OS£OS¤OS¥OS¦OS§OS¨OS©OSªOS«OS¬OS­OS®OS¯OS°OS±OS²OS³OS´OSµOS¶OS·OS¸OS¹OSºOS»OS¼OS½OS¾OS¿OSÀOSÁOSÂOSÃOSÄOSÅOSÆOSÇOSÈOSÉOSÊOSËOSÌOSÍOSÎOSÏOSÐOSÑOSÒOSÓOSÔOSÕOSÖOS×OSØOSÙOSÚOSÛOSÜOSÝOSÞOSßOSàOSáOSâOSãOSäOSåOSæOSçOSèOSéOSêOSëOSìOSíOSîOSïOSðOSñOSòOSóOSôOSõOSöOS÷OSøOSùOSúOSûOSüOSýOSþOSÿOS€PS�PS‚PSƒPS„PS…PS†PS‡PSˆPS‰PSŠPS‹PSŒPS�PSŽPS�PS�PS‘PS’PS“PS”PS•PS–PS—PS˜PS™PSšPS›PSœPS�PSžPSŸPS PS¡PS¢PS£PS¤PS¥PS¦PS§PS¨PS©PSªPS«PS¬PS­PS®PS¯PS°PS±PS²PS³PS´PSµPS¶PS·PS¸PS¹PSºPS»PS¼PS½PS¾PS¿PSÀPSÁPSÂPSÃPSÄPSÅPSÆPSÇPSÈPSÉPSÊPSËPSÌPSÍPSÎPSÏPSÐPSÑPSÒPSÓPSÔPSÕPSÖPS×PSØPSÙPSÚPSÛPSÜPSÝPSÞPSßPSàPSáPSâPSãPSäPSåPSæPSçPSèPSéPSêPSëPSìPSíPSîPSïPSðPSñPSòPSóPSôPSõPSöPS÷PSøPSùPSúPSûPSüPSýPSþPSÿPS€QS�QS‚QSƒQS„QS…QS†QS‡QSˆQS‰QSŠQS‹QSŒQS�QSŽQS�QS�QS‘QS’QS“QS”QS•QS–QS—QS˜QS™QSšQS›QSœQS�QSžQSŸQS QS¡QS¢QS£QS¤QS¥QS¦QS§QS¨QS©QSªQS«QS¬QS­QS®QS¯QS°QS±QS²QS³QS´QSµQS¶QS·QS¸QS¹QSºQS»QS¼QS½QS¾QS¿QSÀQSÁQSÂQSÃQSÄQSÅQSÆQSÇQSÈQSÉQSÊQSËQSÌQSÍQSÎQSÏQSÐQSÑQSÒQSÓQSÔQSÕQSÖQS×QSØQSÙQSÚQSÛQSÜQSÝQSÞQSßQSàQSáQ§âQ§ãQ§äQ§åQ§æQ¨çQ§èQ§éQ§êQ§ëQ§ìQ§íQ§îQ§ïQ§ðQ§ñQ§òQ§óQ§ôQ§õQ§öQ§÷Q§øQ§ùQ§úQ§ûQ§üQ§ýQ§þQ§ÿQ§€R§�R§‚R§ƒR§„R§…R§†R§‡R§ˆR§‰R§ŠR§‹R§ŒR§�R§ŽR§�R§�R§‘R§’R§“R§”R§•R§–R§—R§˜R§™R§šR§›R§œR§�R§žR§ŸR§ R§¡R§¢R§£R§¤R§¥R§¦R§§R§¨R§©R§ªR§«R§¬R§­R©®R©¯R©°R©±R©²R©³R©´RªµRª¶Rª·R«¸R«¹R«ºR«»R«¼R¬½R¬¾R­¿R­ÀR®ÁR¯ÂR[ÃR[ÄR[ÅR[ÆR[ÇR[ÈR[ÉR[ÊR[ËR[ÌR[ÍR[ÎR[ÏR[ÐR[ÑR[ÒR[ÓR[ÔR[ÕR[ÖR[×R[ØR[ÙR[ÚR[ÛR[ÜR[ÝR[ÞR[ßR[àR[áR[âR[ãR[äR[åR[æR[çR[èR[éR[êR[ëR[ìR[íR[îR[ïR[ðR[ñR[òR[óR[ôR[õR[öR[÷R°øR±ùR±úRûRüRýRþRÿR€S�S‚SƒS„S…S†S‡SˆS‰SŠS‹SŒS�SŽS�S�S‘S’S“S”S•S–S—S˜S™SšS›SœS�SžSŸS S¡S¢S£S¤S¥S¦S§S¨S©SªS«S¬S­S®S¯S°S±S[²S[³S[´S[µS[¶S[·S[¸S[¹S²ºS²»S²¼S²½S²¾S²¿S[ÀS[ÁS[ÂS[ÃS[ÄS[ÅS[ÆS[ÇS[ÈS³ÉS³ÊS[ËS´ÌS´ÍS´ÎS´ÏS´ÐS´ÑS´ÒS´ÓS´ÔS´ÕS´ÖS´×S´ØS´ÙS´ÚS´ÛS´ÜSµÝS¶ÞS[ßS[àS[áS[âS[ãS[äS[åS[æS[çS[èS·éS·êS¸ëS¸ìS¹íSºîSºïSºðSºñSºòSºóSºôSºõSºöSº÷SºøSºùSºúSºûSºüSºýSºþSºÿSº€Tº�Tº‚TºƒTº„Tº…Tº†Tº‡TºˆTº‰TºŠTº‹TºŒTº�TºŽTº�Tº�Tº‘Tº’Tº“Tº”Tº•Tº–Tº—T»˜T¼™T½šT½›T½œT½�T½žT½ŸT½ T½¡T½¢T½£T½¤T½¥T½¦T½§T½¨T½©T½ªT½«T½¬T½­T½®T½¯T½°T½±T½²T½³T½´T½µT½¶T¾·T¿¸TÀ¹TÀºTÀ»TÀ¼TÀ½TÀ¾TÀ¿TÀÀTÀÁTÀÂTÀÃTÀÄTÀÅTÀÆTÀÇTÀÈTÀÉTÀÊTÀËTÀÌTÀÍTÀÎTÀÏTÀÐTÀÑTÀÒTÀÓTÀÔTÀÕTÀÖTÀ×TÀØTÀÙTÀÚTÀÛTÀÜTÀÝTÀÞTÀßTÀàTÀáTÀâTÀãTÀäTÀåTÀæTÀçTÀèTÀéTÀêTÀëTÀìTÀíTÀîTÀïTÀðTÀñTÀòTÀóTÀôTÀõTÀöTÀ÷TÀøTÀùTÀúTÀûTÀüTÀýTÀþTÀÿTÀ€UÀ�UÀ‚UÀƒUÀ„UÀ…UÀ†UÀ‡UÀˆUÀ‰UÀŠUÀ‹UÀŒUÀ�UÀŽUÀ�UÀ�UÀ‘UÀ’UÀ“UÀ”UÀ•UÀ–UÀ—UÀ˜UÀ™UÀšUÀ›UÀœUÀ�UÀžUÀŸUÀ UÀ¡UÀ¢UÀ£UÀ¤UÀ¥UÀ¦UÀ§UÀ¨UÀ©UÀªUÀ«UÀ¬UÀ­UÀ®UÀ¯UÀ°UÀ±UÀ²UÀ³UÀ´UÀµUÀ¶UÀ·UÀ¸UÀ¹UÀºUÀ»UÀ¼UÀ½UÀ¾UÀ¿UÀÀUÀÁUÀÂUÀÃUÀÄUÀÅUÀÆUÀÇUÀÈUÀÉUÀÊUÀËUÀÌUÀÍUÀÎUÀÏUÀÐUÀÑUÀÒUÀÓUÀÔUÀÕUÀÖUÀ×U|ØU|ÙU|ÚU|ÛU|ÜU|ÝU|ÞU|ßU|àU|áU|âU|ãU|äU|åU|æU|çU|èU|éU|êU|ëU|ìU|íU|îU|ïU|ðU|ñU|òU|óU|ôU|õU|öU|÷U|øU|ùU|úU|ûU|üU|ýU|þU|ÿU|€V|�V|‚V|ƒV|„V|…V|†V|‡V|ˆV|‰VÁŠVÁ‹VÁŒVÁ�VÁŽVÁ�VÁ�VÁ‘VÁ’VÁ“VÁ”VÁ•VÁ–VÁ—VÁ˜VÁ™VÁšVÁ›VÁœVÁ�VÁžVÁŸVÁ VÁ¡VÁ¢VÁ£VÁ¤VÁ¥VÁ¦VÁ§VÁ¨VÁ©VÁªVÁ«VÁ¬VÁ­VÁ®VÁ¯VÁ°VÁ±VÁ²VÁ³VÁ´VÁµVÁ¶VÁ·VÁ¸VÁ¹VÁºVÁ»VÁ¼VÁ½VÁ¾VÁ¿VÁÀVÁÁVÁÂVÁÃVÁÄVÁÅVÁÆVÁÇVÁÈVÁÉVÁÊVÁËVÁÌVÁÍVÁÎVÁÏVÁÐVÁÑVÁÒVÁÓVÁÔVÁÕV[ÖV[×V[ØV[ÙV[ÚV[ÛV[ÜV[ÝV[ÞV[ßVÂàVÂáVÂâVÂãVÂäVÂåV[æV[çV[èV[éV[êV[ëV[ìV[íV[îV[ïV[ðV[ñV[òV[óV[ôV[õV[öV[÷V[øV[ùV[úV[ûV[üV[ýV[þV[ÿV[€W[�W[‚W[ƒW[„W[…W[†W[‡W[ˆW[‰W[ŠW[‹W[ŒW[�W[ŽW[�W[�W[‘W[’W[“W[”W[•W[–W[—WØWÙWÚWÄ›WÄœWÄ�WÄžWÄŸWÄ WÅ¡WÅ¢WÅ£WŤWÅ¥WŦWŧWŨWÅ©WŪWÅ«WŬWÅ­WÅ®WůWŰWűWŲWųWÅ´WŵWŶWÅ·WŸWŹWźWÅ»WżWŽWžWÅ¿WÅÀWÅÁWÅÂWÅÃWÅÄWÅÅWÅÆWÅÇWÅÈWÅÉWÅÊWÅËWÅÌWÅÍWÅÎWÅÏWÅÐWÅÑWÅÒWÅÓWÅÔWÅÕWÅÖWÅ×WÅØWÅÙWÅÚWÅÛWÅÜWÅÝWÅÞWÅßWÅàWÅáWÅâWÆãWÆäWÆåWÆæWÆçWÆèWÆéWÆêWÆëWÆìWÆíWÆîWÆïWÆðWÆñWÆòWÆóWÆôWÆõWÆöWÆ÷WÆøWÆùWÆúWÆûWÆüWÆýWÆþWÆÿWÆ€XÆ�XÇ‚XǃXÇ„XÇ…XdžXLJXLjXljXÇŠXÇ‹XÇŒXÇ�XÇŽXÇ�XÇ�XÇ‘XÇ’XÇ“XÇ”XÇ•XÇ–XÇ—XǘXÇ™XÇšXÇ›XÇœXÇ�XÇžXÇŸXÇ XÇ¡XÇ¢XÇ£XǤXÇ¥XǦXǧXǨXÇ©XǪXÇ«XǬXÇ­XÇ®XǯXǰXDZXDzXdzXÇ´XǵXǶXÇ·XǸXǹXǺXÇ»XǼXǽXǾXÇ¿XÇÀXÇÁXÇÂXÇÃXÇÄXÇÅXÇÆXÇÇXÇÈXÇÉXÇÊXÇËXÇÌXÇÍXÇÎXÇÏXÇÐXÇÑXÇÒXÇÓXÇÔXÇÕXÇÖXÇ×XÇØXÇÙXÇÚXÇÛXÇÜXÇÝXÇÞXÇßXÇàXÇáXÇâXÇãXÇäXÇåXÇæXÇçXÇèXÇéXÇêXÇëXÇìXÇíXÇîXÇïXÇðXÇñXÇòXÇóXÇôXÇõXÇöXÇ÷XÇøXÇùXÇúXÇûXÇüXÇýXÇþXÇÿXÇ€YÇ�YÇ‚YǃYÇ„YÇ…YdžYLJYLjYljYÇŠYÇ‹YÇŒYÇ�YÇŽYÇ�YÇ�YÇ‘YÇ’YÇ“YÇ”YÇ•YÇ–YÇ—YǘYÇ™YÇšYÇ›YÇœYÇ�YÇžYÇŸYÇ YÇ¡YÇ¢YÇ£YǤYÇ¥YǦYǧYǨYÇ©YǪYÇ«YǬYÇ­YÇ®YǯYǰYDZYDzYdzYÇ´YǵYǶYÇ·YǸYǹYǺYÇ»YǼYǽYǾYÇ¿YÇÀY[ÁY[ÂY[ÃY[ÄY[ÅY[ÆY[ÇY[ÈY[ÉY[ÊY[ËY[ÌY[ÍY[ÎY[ÏY[ÐY[ÑY[ÒY[ÓY[ÔY[ÕY[ÖY[×Y[ØY[ÙY[ÚY[ÛY[ÜY[ÝY[ÞY[ßY[àY[áY[âY[ãY[äY[åY[æY[çY[èY[éY[êY[ëY[ìYÈíYÈîYÈïYÈðYÈñYÈòYÈóYÈôYÈõYÈöYÈ÷YÈøYÈùYÈúYÈûYÈüYÈýYÈþYÈÿYÈ€ZÈ�ZÈ‚ZȃZÈ„ZÈ…ZȆZȇZȈZɉZÉŠZÉ‹ZÉŒZ[�Z[ŽZ[�Z[�Z[‘Z[’Z[“Z[”Z[•Z[–Z[—Z[˜Z[™Z[šZ[›Z[œZ[�Z[žZ[ŸZ[ Z[¡Z[¢Z[£Z[¤Z[¥Z[¦Z[§Z[¨Z[©Z[ªZ[«Z[¬Z[­Z[®Z[¯Z[°Z[±Z[²Z[³Z[´Z[µZ[¶Z[·Z[¸Z[¹Z[ºZ[»Z[¼Z[½Z[¾Z[¿Z[ÀZ[ÁZ[ÂZ[ÃZ[ÄZ[ÅZ[ÆZ[ÇZ[ÈZ[ÉZ[ÊZ[ËZ[ÌZ[ÍZ[ÎZ[ÏZ[ÐZ[ÑZ[ÒZ[ÓZ[ÔZ[ÕZ[ÖZ[×Z[ØZ[ÙZ[ÚZ[ÛZ[ÜZ[ÝZ[ÞZ[ßZ[àZ[áZ[âZ[ãZ[äZ[åZ[æZ[çZ[èZ[éZ[êZ[ëZ[ìZ[íZ[îZ[ïZ[ðZ[ñZ[òZ[óZ[ôZ[õZ[öZ[÷Z[øZ[ùZ[úZ[ûZ[üZ[ýZ[þZ[ÿZ[€[[�[[‚[[ƒ[[„[[…[[†[[‡[[ˆ[[‰[[Š[[‹[[Œ[[�[[Ž[[�[[�[[‘[[’[[“[[”[[•[[–[[—[[˜[[™[[š[[›[[œ[[�[[ž[[Ÿ[[ [[¡[[¢[[£[[¤[[¥[[¦[[§[[¨[[©[[ª[[«[[¬[[­[[®[[¯[[°[[±[[²[[³[[´[[µ[[¶[[·[[¸[[¹[[º[[»[[¼[[½[[¾[[¿[[À[[Á[[Â[[Ã[[Ä[[Å[[Æ[[Ç[[È[[É[[Ê[[Ë[[Ì[[Í[[Î[[Ï[[Ð[[Ñ[[Ò[[Ó[[Ô[[Õ[[Ö[[×[[Ø[[Ù[[Ú[[Û[[Ü[[Ý[[Þ[[ß[[à[[á[[â[[ã[[ä[[å[[æ[[ç[[è[[é[[ê[[ë[[ì[[í[[î[[ï[[ð[[ñ[[ò[[ó[[ô[[õ[[ö[[÷[[ø[[ù[[ú[[û[[ü[[ý[[þ[[ÿ[[€\Ê�\Ê‚\ʃ\Ê„\Ê…\ʆ\ʇ\ʈ\ʉ\ËŠ\Ë‹\[Œ\[�\[Ž\[�\[�\[‘\[’\[“\[”\[•\[–\[—\[˜\[™\[š\[›\[œ\[�\[ž\[Ÿ\[ \[¡\[¢\[£\[¤\[¥\[¦\[§\[¨\[©\[ª\[«\[¬\[­\[®\[¯\[°\[±\[²\[³\[´\[µ\[¶\[·\[¸\[¹\[º\[»\[¼\[½\[¾\[¿\[À\[Á\[Â\[Ã\ÌÄ\ÌÅ\ÌÆ\ÌÇ\ÌÈ\ÌÉ\ÌÊ\ÌË\ÌÌ\ÌÍ\ÌÎ\ÌÏ\ÍÐ\ÎÑ\ÎÒ\ÎÓ\ÎÔ\ÎÕ\ÎÖ\Î×\ÎØ\ÎÙ\ÎÚ\ÎÛ\ÎÜ\ÎÝ\ÎÞ\Îß\Îà\Îá\Îâ\Îã\Îä\Îå\Îæ\Îç\Îè\Îé\Îê\Îë\Îì\Îí\Îî\Îï\Îð\Îñ\Îò\Îó\Îô\Îõ\Îö\Î÷\Îø\Îù\Îú\Îû\Îü\Îý\Îþ\Îÿ\΀]Î�]΂]΃]΄]Î…]Ά]·]Έ]Ή]Ί]΋]ÎŒ]Î�]ÎŽ]Î�]Î�]Α]Î’]Γ]Δ]Ε]Ζ]Η]Θ]Ι]Κ]Λ]Μ]Î�]Ξ]Ο]Ï ]Ï¡]Ï¢]Ï£]Ϥ]Ï¥]Ϧ]´§]Ϩ]Ï©]Ϫ]Ï«]Ϭ]Ï­]Ï®]ϯ]ϰ]ϱ]ϲ]ϳ]Ï´]ϵ]϶]Ï·]ϸ]Ϲ]Ϻ]Ï»]ϼ]Ͻ]Ͼ]Ï¿]ÏÀ]ÏÁ]ÏÂ]ÏÃ]ÏÄ]ÏÅ]ÏÆ]ÏÇ]ÏÈ]ÏÉ]ÏÊ]ÏË]ÏÌ]ÏÍ]ÏÎ]ÏÏ]ÏÐ]ÏÑ]ÏÒ]ÏÓ]ÏÔ]ÏÕ]ÏÖ]Ï×]ÏØ]ÏÙ]ÏÚ]ÏÛ]ÏÜ]ÏÝ]ÏÞ]Ïß]Ïà]Ïá]Ïâ]Ïã]Ïä]Ïå]Ïæ]Ïç]Ïè]Ïé]Ïê]Ïë]Ïì]Ïí]Ïî]Ïï]Ïð]Ðñ]Ðò]Ðó]Ðô]Ðõ]Ñö]Ñ÷]Ñø]Ñù]Ñú]Ñû]Ñü]Ñý]Òþ]Òÿ]Ò€^Ò�^Ò‚^Òƒ^Ò„^Ò…^Ò†^Ò‡^Óˆ^Ó‰^ÓŠ^Ó‹^ÓŒ^Ó�^ÓŽ^Ó�^Ó�^Ó‘^Ó’^Ó“^Ó”^Ó•^Ó–^Ó—^Ó˜^Ó™^Óš^Ó›^Óœ^Ó�^Óž^ÓŸ^Ó ^Ó¡^Ó¢^Ó£^Ó¤^Ó¥^Ó¦^Ó§^Ó¨^Ó©^Óª^Ó«^Ó¬^Ó­^Ó®^Ó¯^Ó°^Ó±^Ó²^Ô³^Õ´^Öµ^[¶^[·^[¸^[¹^[º^[»^[¼^[½^[¾^[¿^[À^[Á^[Â^[Ã^[Ä^[Å^[Æ^[Ç^[È^[É^[Ê^[Ë^[Ì^[Í^[Î^[Ï^[Ð^[Ñ^[Ò^[Ó^[Ô^[Õ^[Ö^[×^[Ø^[Ù^[Ú^[Û^[Ü^[Ý^[Þ^[ß^[à^[á^[â^[ã^[ä^[å^[æ^[ç^[è^[é^[ê^[ë^[ì^[í^[î^[ï^[ð^[ñ^[ò^[ó^[ô^[õ^[ö^[÷^[ø^[ù^[ú^[û^[ü^[ý^[þ^[ÿ^[€_[�_[‚_[ƒ_[„_[…_[†_[‡_[ˆ_[‰_׊_׋_׌_×�_׎_×�_×�_ב_×’_ד_Ø”_Ø•_Ø–_Ø—_ؘ_Ø™_Øš_Ø›_Øœ_Ù�_Ùž_[Ÿ_[ _[¡_[¢_[£_[¤_[¥_[¦_[§_[¨_[©_[ª_[«_[¬_[­_[®_[¯_[°_[±_[²_[³_[´_[µ_[¶_[·_[¸_[¹_[º_[»_[¼_[½_[¾_[¿_[À_[Á_[Â_[Ã_[Ä_[Å_[Æ_[Ç_[È_[É_[Ê_[Ë_[Ì_[Í_[Î_[Ï_[Ð_[Ñ_[Ò_[Ó_[Ô_[Õ_[Ö_[×_[Ø_[Ù_[Ú_[Û_[Ü_[Ý_[Þ_[ß_[à_[á_[â_[ã_[ä_[å_[æ_[ç_[è_[é_[ê_[ë_[ì_[í_[î_[ï_[ð_Úñ_Úò_Úó_Úô_Úõ_Úö_Ú÷_Úø_Úù_Úú_Úû_Úü_Úý_Úþ_Úÿ_Ú€`Ú�`Ú‚`Úƒ`Ú„`Ú…`Ú†`Ú‡`Úˆ`Û‰`ÛŠ`Û‹`ÛŒ`Û�`ÛŽ`Û�`Û�`Û‘`Û’`Û“`Û”`Û•`Ü–`Ü—`ݘ`Ý™`Ýš`Ý›`Þœ`Þ�`Þž`ÞŸ`Þ `Þ¡`ߢ`ߣ`ߤ`ߥ`ߦ`ß§`ߨ`ß©`ߪ`ß«`߬`à­`à®`à¯`à°`à±`à²`à³`á´`áµ`â¶`â·`â¸`â¹`âº`â»`ã¼`ã½`ã¾`ã¿`ãÀ`ãÁ`ãÂ`ãÃ`äÄ`äÅ`äÆ`äÇ`äÈ`äÉ`äÊ`äË`äÌ`äÍ`åÎ`åÏ`åÐ`åÑ`åÒ`åÓ`åÔ`åÕ`åÖ`å×`åØ`åÙ`åÚ`åÛ`åÜ`åÝ`åÞ`åß`åà`åá`åâ`åã`åä`åå`åæ`åç`åè`åé`åê`åë`åì`åí`åî`åï`åð`åñ`åò`æó`æô`æõ`æö`æ÷`æø`æù`æú`æû`æü`æý`æþ`æÿ`æ€aæ�aæ‚aæƒaæ„aæ…aæ†aæ‡aæˆaç‰açŠaç‹açŒaç�açŽaç�aç�a®‘a®’a®“a®”a®•a®–a®—a®˜a®™a®ša®›a®œa®�a®ža®Ÿa® a®¡a®¢a®£a®¤a®¥a®¦a®§a®¨a®©a®ªa®«a®¬a®­a®®a®¯a®°a®±a®²a®³a®´a®µa®¶a®·a®¸a®¹a®ºa®»a®¼a®½a®¾a®¿a®Àa®Áa®Âa®Ãa®Äa®Åa®Æa®Ça®Èa®Éa®Êa®Ëa®Ìa®Ía®Îa®Ïa®Ða®Ña®Òa®Óa®Ôa®Õa®Öa®×a®Øa®Ùa®Úa®Ûa®Üa®Ýa®Þa®ßa®àa®áa®âa®ãa®äa®åa®æa®ça®èa®éa®êa®ëa®ìa®ía®îa®ïa®ða®ña®òa®óa®ôa®õa®öa®÷a®øa®ùa®úa®ûa®üa®ýa®þa®ÿa®€b®�b®‚b®ƒb®„b®…b®†b®‡b®ˆb®‰b®Šb®‹b®Œb®�b®Žb®�b®�b®‘b®’b®“b®”b®•b®–b®—b®˜b®™b®šb®›b®œb®�b®žb®Ÿb® b®¡b®¢b®£b®¤b®¥b®¦b®§b®¨b®©b®ªb®«b®¬b®­b®®b®¯b®°b®±b®²b®³b®´b®µb®¶b®·b®¸b®¹b®ºb®»b®¼b®½b®¾b®¿b®Àb®Áb®Âb®Ãb®Äb®Åb®Æb®Çb®Èb®Éb®Êb®Ëb®Ìb®Íb®Îb®Ïb®Ðb®Ñb®Òb®Ób®Ôb®Õb®Öb®×b®Øb®Ùb®Úb®Ûb®Üb®Ýb®Þb®ßb®àb®áb®âb®ãb®äb®åb®æb®çb®èb®éb®êb®ëbÉìbÉíbÉîbÉïbÉðbÉñbÉòbÉóbÉôbÉõbÉöbÉ÷bÉøbÉùbÉúbÉûbÉübÉýbÉþbÉÿbÉ€cÉ�cÉ‚cɃcÉ„cÉ…cɆcɇcɈcɉcÉŠcÉ‹cÉŒcÉ�cÉŽcÉ�cÉ�cÉ‘cÉ’cÉ“cÉ”cÉ•cÉ–cÉ—cɘcÉ™cÉšcÉ›cÉœcÉ�cÉžcÉŸcÉ cÉ¡cÉ¢cÉ£cɤcÉ¥cɦcɧcɨcÉ©cɪcÉ«cɬcÉ­cè®cè¯cè°cè±cè²cè³cè´cèµcè¶cè·cè¸cè¹cèºcè»cè¼cé½cé¾cé¿céÀcéÁcéÂcéÃcÍÄcÍÅcÍÆcÍÇcÍÈcÍÉcÍÊcÍËcÍÌcÍÍcÍÎcÍÏcÍÐcÍÑcÍÒcÍÓcÍÔcÍÕcÍÖcÍ×cÍØcÍÙcÍÚcÍÛcÍÜcÍÝcÍÞcÍßcÍàcÍácÍâcÍãcÍäcÍåcÍæcÍçcÍècÍécÍêcÍëcÍìcÍícÍîcêïcêðcêñcëòcëócìôcìõcìöcì÷cìøcìùcìúcìûcìücìýcìþcìÿcì€dì�dì‚dìƒdì„dí…dí†dí‡díˆdí‰díŠdí‹dîŒdî�dîŽdî�dï�dï‘dï’dï“dï”dï•dï–dï—dï˜dï™dïšdï›dïœdð�dñždñŸdñ dñ¡dñ¢dñ£dñ¤dñ¥dñ¦dñ§dñ¨dñ©dñªdñ«dñ¬dñ­dñ®dñ¯d¸°d¸±d¸²dò³dò´dòµdò¶dò·dò¸dò¹dòºdò»dò¼dó½dó¾dô¿dôÀdôÁdôÂdôÃdôÄdôÅdôÆdôÇdôÈdôÉdôÊdôËdôÌdôÍdôÎdôÏdôÐdôÑdôÒdôÓdôÔdôÕdôÖdô×dôØdôÙdôÚdôÛdôÜdôÝdôÞdôßdõàdõádõâdõãdõädõådõædõçdõèdõédõêdõëdõìdõídõîdõïdõðdõñdõòdõódõôdõõdõödõ÷dõødõùdõúdõûdõüdõýdõþdõÿdõ€eõ�eõ‚eõƒeõ„eõ…eõ†eõ‡eõˆeõ‰eõŠeõ‹eõŒeõ�eõŽeõ�eõ�eõ‘eõ’eõ“eõ”eõ•eõ–eõ—eõ˜eõ™eõšeõ›eõœeõ�eõžeõŸeõ eõ¡eõ¢eõ£e´¤e´¥e´¦e´§e´¨e´©e´ªe´«e´¬e´­e´®e´¯e´°e´±e´²e´³e´´e´µe´¶e´·e´¸e´¹e´ºe´»e´¼e´½e´¾e´¿e´Àe´Áe´Âe´Ãe´Äe´Åe´Æe´Çe´Èe´Ée´Êe´Ëe´Ìe´Íe´Îe´Ïe´Ðe´Ñe´Òe´Óe´Ôe´Õe´Öe´×e´Øe´Ùe´Úe´Ûe´Üe´Ýe´Þe´ße´àe´áe´âe´ãe´äe´åe´æe´çe´èe´ée´êe´ëe´ìe´íe´îe´ïe´ðe´ñe´òe´óe´ôe´õe´öe´÷e´øe´ùe´úe´ûe´üe´ýe´þe´ÿe´€f´�f´‚f´ƒf´„f´…f´†f´‡f´ˆf´‰f´Šfö‹föŒfö�föŽfö�f÷�fø‘fø’fø“fø”fø•fø–fø—fø˜fø™føšfø›føœfø�føžføŸfø fø¡fø¢fø£fø¤fø¥fø¦fø§fø¨fø©føªfø«fø¬fø­fø®fø¯fø°fø±fø²fø³fø´føµfø¶fø·fø¸fø¹føºfø»fø¼fø½fø¾fø¿fùÀfùÁfùÂfùÃfùÄfùÅfùÆfùÇfùÈfùÉfùÊfùËfùÌfùÍfùÎfùÏfùÐfùÑfùÒfúÓfúÔfúÕfúÖfú×fúØfúÙfúÚfúÛfúÜfúÝfúÞfúßfúàfúáfúâfúãfúäfúåfúæfúçfúèfúéfúêfúëfúìfúífúîfúïfúðfúñfúòfúófúôfúõfúöfú÷fúøfúùfúúfúûfúüfúýfúþfúÿfú€gú�gú‚gúƒgú„gú…gú†gú‡gúˆgú‰gúŠgú‹g¯Œg¯�g¯Žg¯�g¯�g¯‘g¯’g¯“g¯”g¯•g¯–g¯—g¯˜g¯™g¯šg¯›g¯œg¯�g¯žg¯Ÿg¯ g¯¡g¯¢g¯£g¯¤g¯¥g¯¦g¯§g¯¨g¯©g¯ªg¯«g¯¬g¯­g¯®g¯¯g¯°g¯±g¯²g¯³g¯´g¯µg¯¶g¯·g¯¸g¯¹g¯ºg¯»g¯¼g¯½g¯¾g¯¿g¯Àg¯Ág¯Âg¯Ãg¯Äg¯Åg¯Æg¯Çg¯Èg¯Ég¯Êg¯Ëg¯Ìg¯Íg¯Îg¯Ïg¯Ðg¯Ñg¯Òg¯Óg¯Ôg¯Õg¯Ög¯×g¯Øg¯Ùg¯Úg¯Ûg¯Üg¯Ýg¯Þg¯ßg¯àg¯ág¯âg¯ãg¯äg¯åg¯æg¯çg¯èg¯ég¯êg¯ëg¯ìg¯íg¯îg¯ïg¯ðg¯ñg¯òg¯óg¯ôg¯õg¯ög¯÷g¯øg¯ùg¯úg¯ûg¯üg¯ýg¯þg¯ÿg¯€h¯�h¯‚h¯ƒh¯„h¯…h¯†h¯‡hûˆhû‰h¶Šh¶‹h¶ŒhÙ�hÙŽhÙ�hÙ�hÙ‘hÙ’hÙ“hÙ”hÙ•hÙ–hÙ—hÙ˜hÙ™hÙšhÙ›hÙœhÙ�hÙžhÙŸhÙ hÙ¡hÙ¢hÙ£hÙ¤hÙ¥hÙ¦hÙ§hÙ¨hÙ©hÙªhÙ«hÙ¬hÙ­hÙ®hÙ¯hÙ°hÙ±hÙ²hÙ³hÙ´hÙµhÙ¶hÙ·hÙ¸hÙ¹hÙºhâ»hâ¼hâ½hâ¾hâ¿hâÀhâÁhâÂhâÃhâÄhâÅhâÆhâÇhâÈhâÉhâÊhâËhâÌhâÍhâÎhâÏhâÐhâÑhâÒhâÓhâÔhâÕhâÖhâ×hâØhâÙhâÚhâÛhâÜhâÝhâÞhâßhâàhâáhââhâãhâähâåhâæhâçhâèhâéhâêhâëhâìhâíhâîhâïhâðhâñhâòhâóhâôhâõhâöhâ÷hüøhüùhüúhüûhüühüýhüþhüÿhü€iü�iü‚iüƒiü„iü…iü†iü‡iüˆiü‰iüŠiü‹iüŒiü�iüŽiü�iü�iü‘iü’iü“iü”iü•iü–iü—iü˜iü™iüšiü›iüœiü�iüžiüŸiü iü¡iü¢iü£iü¤iü¥iü¦iü§iü¨iü©iüªiü«iü¬iü­iü®iü¯iü°iü±iü²iü³iü´iüµiü¶iü·iü¸iü¹iüºiü»iü¼iü½iü¾iü¿iüÀiüÁiüÂiüÃiüÄiüÅiüÆiüÇiüÈiüÉiüÊiüËiüÌiüÍiüÎiüÏiüÐiüÑiüÒiüÓiüÔiüÕiüÖiü×iüØiüÙiüÚiüÛiüÜiüÝiüÞiãßiãàiãáiãâiããiãäiãåiãæiãçiãèiãéiãêiãëiãìiýíiýîiýïiýðiýñiýòiýóiýôiýõiýöiý÷iýøiýùiýúiþûiþüiþýiþþiÿÿiÿ€jÿ�jÿ‚jÿƒjÿ„j€…j€†j܇j܈j܉jÜŠjÜ‹jÜŒjÜ�jÜŽjÜ�jÜ�jÜ‘jÜ’jÜ“jÜ”jÜ•jÜ–jÜ—j�˜j�™j�šj�›j�œj��j�žj�Ÿj� j�¡j�¢j�£j�¤j�¥j�¦j�§j�¨j�©j�ªj�«j�¬j�­j�®j�¯j�°j�±j�²j�³j�´j�µj�¶j�·j�¸j�¹j�ºj�»j�¼j�½j�¾j�¿j�Àj�Áj�Âj�Ãj�Äj�Åj‚Æj‚Çj‚Èj‚Éj‚Êj‚Ëj‚Ìj‚Íj‚Îj‚Ïj‚Ðj‚Ñj‚Òj‚Ój‚Ôj‚Õj‚Öj‚×j‚ØjƒÙjƒÚjƒÛjƒÜjƒÝjƒÞjƒßjƒàjƒájƒâjƒãjƒäjƒåjƒæjƒçjƒèjƒéjƒêjƒëjƒìjƒíjƒîjƒïjƒðjƒñjƒòjƒójƒôjƒõjƒöjƒ÷jƒøjƒùjƒújƒûjƒüjƒýjƒþjƒÿjƒ€kƒ�kƒ‚kƒƒkƒ„kƒ…kƒ†kƒ‡kƒˆkƒ‰kƒŠkƒ‹kƒŒkƒ�kƒŽkƒ�kƒ�kƒ‘kƒ’kƒ“kƒ”kƒ•kƒ–kƒ—kƒ˜kƒ™kƒškƒ›kƒœkƒ�kƒžk³Ÿk³ k³¡k³¢k³£k³¤k³¥k³¦k³§k³¨k³©k³ªk³«k³¬k³­k³®k„¯k„°k„±k„²k„³k„´k„µk„¶k„·k„¸k„¹k„ºk„»k„¼kµ½kµ¾kµ¿kµÀkµÁkµÂkµÃkµÄkµÅkµÆkµÇkµÈkµÉkµÊkµËkµÌk…Ík…Îk…Ïk…Ðk…Ñk…Òk…Ók…Ôk…Õk…Ök…×k…Øk…Ùk…Úk…Ûk…Ük…Ýk…Þk…ßk…àk…ák…âk…ãk…äk…åk…æk…çk…èk…ék…êk…ëk…ìk…ík…îk…ïk…ðk…ñk…òk…ók…ôk…õk…ök…÷k…øk…ùk†úk†ûk†ük†ýk†þk†ÿk†€l†�l†‚l†ƒl†„l†…l††l†‡l†ˆl†‰l†Šl†‹l†Œl†�l†Žl†�l†�l†‘l†’l†“l†”l†•l†–l†—l†˜l†™l†šl†›l†œl†�l†žl†Ÿl† l†¡l†¢l‡£l‡¤l‡¥l‡¦l‡§l‡¨l‡©l‡ªl‡«l‡¬l‡­l‡®l‡¯l‡°l‡±l‡²l‡³l‡´l‡µl‡¶l‡·l‡¸l‡¹l‡ºl‡»l‡¼l‡½l‡¾l‡¿l‡Àl‡Ál‡Âl‡Ãl‡Äl‡Ål‡Æl‡Çl‡Èl‡Él‡Êl‡Ël‡Ìl‡Íl‡Îl‡Ïl‡Ðl‡Ñl‡Òl‡Ól‡Ôl‡Õl‡Öl‡×l‡Øl‡ÙlˆÚlˆÛlˆÜlˆÝlˆÞlˆßlˆàlˆálˆâlˆãlˆälˆålˆælˆçlˆèlˆélˆêlˆëlˆìlˆílˆîlˆïlˆðlˆñlˆòlˆólˆôlˆõlˆölˆ÷lˆølˆùlˆúlˆûlˆülˆýlˆþlˆÿlˆ€mˆ�mˆ‚mˆƒmˆ„mˆ…mˆ†mˆ‡mˆˆmˆ‰mˆŠmˆ‹mˆŒmˆ�mˆŽmˆ�mˆ�mˆ‘mˆ’mˆ“mˆ”mˆ•mˆ–mˆ—mˆ˜mˆ™mˆšmˆ›mˆœmˆ�mˆžmˆŸmˆ mˆ¡mˆ¢mˆ£mˆ¤mˆ¥mˆ¦mˆ§mˆ¨mˆ©mˆªmˆ«mˆ¬mˆ­mˆ®mˆ¯mˆ°mˆ±mˆ²mˆ³mˆ´mˆµmˆ¶mˆ·mˆ¸mˆ¹mˆºmˆ»mˆ¼mˆ½mˆ¾mˆ¿mˆÀmˆÁmˆÂmˆÃmˆÄmˆÅmˆÆmˆÇmˆÈmˆÉmˆÊmˆËmˆÌmˆÍmˆÎmˆÏmˆÐmˆÑmˆÒmˆÓmˆÔmˆÕm±Öm±×m±Øm±Ùm±Úm±Ûm±Üm±Ým±Þm±ßm±àm±ám±âm±ãm±ämûåmûæmûçm‰èm‰ém‰êm‰ëm‰ìm‰ím‰îm‰ïm‰ðm‰ñm‰òm‰óm‰ôm‰õm‰öm‰÷m‰øm‰ùm‰úm‰ûm‰üm‰ým‰þm‰ÿm‰€n‰�n‰‚n‰ƒn‰„n‰…n‰†n‰‡n‰ˆn‰‰n‰Šn‰‹n‰Œn‰�n‰Žn‰�nË�nË‘nË’nË“nË”nË•nË–nË—n˘nË™nËšnË›nËœnË�nËžnËŸnŠ nŠ¡nŠ¢nŠ£nФnŠ¥nЦnЧnЍnŠ©nŠªnŠ«nЬnŠ­nŠ®nНn‹°n‹±n‹²n‹³n‹´nĵnĶnÄ·nĸnĹnĺnÄ»nļnĽnľnÄ¿nÄÀnÄÁnÄÂnÄÃnÄÄnŒÅnŒÆnŒÇnŒÈnŒÉnŒÊnŒËnŒÌnŒÍnŒÎnŒÏnŒÐnŒÑnŒÒnŒÓnŒÔnŒÕnŒÖnŒ×nŒØnŒÙn�Ún�Ûn�Ün�Ýn�Þn�ßn�àn�án�ân�ãn�än�ån�æn�çn�èn�én�ên�ën�ìn�ín�în�ïn�ðn�ñn�òn�ón�ôn�õn�ön�÷n�øn�ùn�ún�ûn�ün�ýn�þn�ÿn�€o��o�‚o�ƒo�„o�…o�†o�‡o�ˆo�‰o�Šo�‹o�Œo��o�Žo��o��o�‘o�’o�“o�”o�•o�–o�—o�˜o�™o�šo�›o�œo��o�žo�Ÿo� o�¡o�¢o�£o�¤o�¥o�¦o�§o�¨o�©o�ªo°«o°¬o°­oÛ®oÛ¯oÛ°oÛ±oÛ²oÛ³oÛ´oÛµoÛ¶oÛ·oÛ¸oÛ¹oÛºoÛ»oÛ¼oÛ½oÛ¾oÛ¿oÛÀoÛÁoÛÂoÛÃoÛÄoÛÅoÛÆoÛÇoÛÈoÛÉoÛÊoÛËoÛÌoÛÍoÛÎoÛÏoÛÐoÛÑoÛÒoÛÓoÛÔoÛÕoÛÖoÛ×oÛØoÛÙoÛÚoÛÛoÛÜoÛÝoÛÞoÛßoÛàoÛáoÛâoÛãoÛäoÛåoÛæoÛçoÛèoÛéoÛêoÛëoÛìoŽíoŽîoŽïoŽðoŽñoŽòoŽóoŽôoŽõoŽöoŽ÷oŽøoŽùoŽúoŽûoŽüoŽýoŽþoŽÿoŽ€pŽ�pŽ‚pŽƒpŽ„pŽ…pކpއpŽˆpމpŽŠpŽ‹pŽŒpŽ�pŽŽpŽ�pŽ�pŽ‘pŽ’pŽ“pŽ”pŽ•pŽ–pŽ—pŽ˜pŽ™pŽšpŽ›pŽœpŽ�pñžpñŸpñ pñ¡pñ¢pñ£pñ¤pñ¥pñ¦pñ§pñ¨pñ©pñªpñ«pñ¬pñ­pñ®pñ¯pñ°pñ±pñ²pñ³pñ´pñµpñ¶pñ·pñ¸pñ¹pñºpñ»pñ¼pñ½pñ¾pñ¿p�Àp�Áp�Âp�Ãp�Äp�Åp�Æp�Çp�Èp�Ép�Êp�Ëp�Ìp�Íp�Îp�Ïp�Ðp�Ñp�Òp�Óp�Ôp�Õp�Öp�×p�Øp�Ùp�Úp�Ûp�Üp�Ýp�Þp�ßp�àp�áp�âp�ãp�äp¬åp¬æp¬çp¬èp¬ép¬êp¬ëp¬ìp¬íp¬îp¬ïp¬ðp­ñp­òp­óp­ôp­õp­öp­÷p­øp­ùp­úp­ûp­üp­ýp­þp­ÿp­€q­�q­‚q�ƒq�„q�…q�†q‘‡q‘ˆq‘‰q’Šq’‹q’Œq’�q’Žq’�q’�q’‘q’’q’“q’”q’•q’–q’—q’˜q’™q’šq’›q’œq’�q’žq’Ÿq’ q’¡q’¢q’£q’¤q’¥q’¦q’§q’¨q’©q’ªq’«q’¬q’­q’®q’¯qò°qò±qò²qò³qò´qòµqò¶q“·q“¸q“¹q“ºq“»q“¼q“½q”¾q”¿q”Àq”Áq”Âq”Ãq”Äq”Åq”Æq”Çq”Èq”Éq”Êq”Ëq”Ìq”Íq”Îq”Ïq”Ðq”Ñq”Òq”Óq”Ôq”Õq”Öq”×q”Øq”Ùq”Úq”Ûq”Üq”Ýq”Þq”ßq”àq”áq”âq”ãq”äq”åq”æq”çq”èq”éq”êq”ëq”ìq”íq”îq”ïq”ðq”ñq”òq”óq”ôq”õq”öq”÷q”øq”ùq”úq”ûq”üq”ýq”þq”ÿq”€r”�r”‚r•ƒr•„r•…r–†r–‡r–ˆr–‰r–Šr–‹r–Œr–�r–Žr–�r–�r–‘r–’r–“r–”r–•r––r–—r–˜r–™r–šr–›r–œr–�r–žr–Ÿr– r–¡r–¢r–£r–¤r–¥r–¦r–§r–¨r–©r–ªr—«r—¬r—­r—®r—¯r—°r—±r—²r˜³r˜´r˜µr˜¶r˜·r˜¸r˜¹r˜ºr˜»r˜¼r˜½r˜¾r˜¿r˜Àr˜Ár˜Âr˜Ãr˜Är˜År˜Ær˜Çr˜Èr˜Ér™Êr™ËršÌr›ÍrœÎrœÏrœÐrœÑrœÒrœÓrœÔrœÕrœÖrœ×rœØrœÙrœÚr Ûr Ür Ýr Þr ßr àr ár âr ãr är år ær çr èr ér êr ër ìr ír îr ïr ðr ñr òr ór ôr õr ör ÷r ør ùr úr ûr ür ýr þr ÿr €s �s ‚s ƒs „s …s †s ‡s ˆs ‰s Šs ‹s Œs �s Žs �s �s ‘s ’s “s ”s •s –s —s ˜s ™s šs ›s œs �s žs Ÿs  s ¡s ¢s £s ¤s ¥s ¦s §s ¨s ©s ªs «s ¬s ­s ®s ¯s °s ±s ²s ³s ´s µs ¶s ·s ¸s ¹s ºs »s ¼s ½s ¾s ¿s Às Ás Âs Ãs Äs Ås Æs Çs Ès És Ês Ës Ìs Ís Îs Ïs Ðs Ñs Òs Ós Ôs Õs Ös ×s Øs Ùs Ús Ûs Üs Ýs Þs ßs às ás âs ãs äs ås æs çs ès és ês ës ìs ís îs ïs ðs ñs òs�ós�ôs�õs�ös�÷s�øs�ùs�úsžûsžüsžýsžþsžÿsž€tž�tž‚tžƒtž„tž…tž†tž‡tžˆtž‰tžŠtž‹tžŒtž�tžŽtž�tž�tž‘tž’tž“tž”tž•tž–tž—tž˜tž™tžštž›tžœtž�tžžtžŸtž tž¡tž¢tž£tž¤tž¥tž¦tž§tž¨tž©tžªtž«tž¬tŸ­tŸ®t ¯t °t¡±t¡²t¡³t¡´t¢µt£¶t£·t¾¸t¾¹t¾ºt¾»t¤¼t¤½t¤¾t¤¿t¤Àt¤Át¥Ât¦Ãt§Ät§Åt¨Æt¨Çt©Èt©Ét©Êt¼Ët¼Ìt¼Ít¼Ît¼Ït¼Ðt¼Ñt¼Òt¼Ót¼Ôt¼Õt¼Öt¼×t¼Øt¼Ùt¼Út¼Ût¼Üt¼Ýt¼Þtªßtªàtªátªâtªãtªätªåtªætªçtªètªétªêtªëtªìtªítªîtªïtªðtªñtªòtªótªôtªõtªötª÷tªøtªùtªút©ût©üt©ýt©þt©ÿt©€u©�u©‚u©ƒu©„u©…u©†u©‡u©ˆu©‰u©Šu©‹u©Œu©�u©Žu©�u©�u©‘u©’u©“u©”u©•u©–u©—u©˜u©™u©šu©›u©œu©�u©žu©Ÿu© u©¡u©¢u©£u©¤u©¥u©¦u©§u©¨u©©u©ªu©«u©¬u©­u©®u©¯u©°u©±u©²u«³u«´u«µu«¶u«·u«¸u¬¹u¬ºu¬»u¬¼u¬½u¬¾u¬¿u¬Àu¬Áu¬Âu¬Ãu¬Äu¬Åu¬Æu¬Çu¬Èu¬Éu¬Êu¬Ëu¬Ìu¬Íu¬Îu¬Ïu¬ÐuîÑuîÒu¹Óu¹Ôu¹Õu¹Öu¹×u¹Øu¹Ùu¹Úu¹Ûu¹Üu¹Ýu¹Þu¹ßu¹àu¹áu¹âu¹ãu¹äu¹åu¹æu¹çu¹èu¹éu¹êu­ëu­ìu­íu­îu­ïuÝðuÝñuÝòuÝóuÝôuÝõuÝöuÝ÷uÝøuÝùuÝúuÝûuÝüuÝýuÝþuÝÿuÝ€vÝ�vÝ‚v݃vÝ„vÝ…v݆v݇v݈v݉vÝŠvÝ‹vÝŒvÝ�vÝŽvÝ�vÝ�vÝ‘vÝ’vÝ“vÝ”vÝ•vÝ–vÝ—vݘv[™v®švª›vªœvª�vªžvªŸvª vª¡vª¢vª£vª¤vª¥vª¦vª§vª¨vª©vªªvª«vª¬vª­vª®vª¯vª°vª±vª²vª³vª´vªµvª¶vª·vª¸vª¹vªºvª»vª¼vª½v¯¾v¯¿v°Àv°Áv°Âv°Ãv°Äv°Åv°Æv°Çv°Èv°Év°Êv°Ëv°Ìv°Ív°Îv°Ïv°Ðv°Ñv°Òv°Óv°Ôv°Õv°Öv°×v±Øv±Ùv±Úv±Ûv±Üv±Ýv±Þv±ßv±àv±áv±âv±ãv±äv±åv±æv±çv±èv±év±êv±ëv±ìv±ív±îv±ïv±ðv±ñv±òv±óv±ôv±õv±öv±÷v±øv±ùv±úv±ûv±üv±ýv±þv±ÿv±€w±�w±‚w±ƒw±„w±…w±†w±‡w±ˆw±‰w±Šw±‹w±Œw±�w±Žw±�w±�w±‘w±’w±“w±”w±•w±–w±—w±˜w±™w±šw±›w±œw±�w±žw±Ÿw± w±¡w±¢w±£w±¤w±¥w±¦w±§w±¨w±©w±ªw±«w±¬w±­w±®w±¯w±°w²±w²²w²³w²´w²µw²¶w²·w²¸w²¹w³ºw³»w´¼w´½w´¾w´¿w´Àw´Áw´Âw´Ãw´Äw´Åw´Æw´Çw´Èw´Éw´Êw´Ëw´Ìw´Íw´Îw´Ïw´Ðw´Ñw´Òw´Ów´Ôw´Õw´Öw´×w´Øw´Ùw´Úw´Ûw´Üw´Ýw´Þw´ßw´àw´áw´âw´ãw´äw´åw´æw´çw´èw´éw´êw´ëw´ìw´íw´îw´ïw´ðw´ñw´òw´ów´ôwµõwµöwµ÷wµøwµùwµúwµûwµüwµýwµþwµÿwµ€xµ�xµ‚xµƒxµ„xµ…xµ†xµ‡xµˆxµ‰xµŠxµ‹xµŒxµ�xµŽx¶�x¶�x¶‘x¶’x¶“x¶”x¶•x¶–x¶—x¶˜x¶™x¶šx¶›x¶œx¶�x¶žx¶Ÿx· x¨¡x¨¢x¨£x¨¤x¨¥x¨¦x¨§x¸¨x¸©x¸ªx¸«x¸¬x¸­x¸®x¸¯x¸°x¸±x¸²x¸³x¸´x¸µx¸¶x¸·x¸¸x¸¹x¸ºx¸»x¸¼x¸½x¸¾x¸¿x¸Àx¸Áx¸Âx¸Ãx¸Äx¸Åx¸Æx¸Çx¸Èx¸Éx¸Êx¸Ëx¸Ìx¸Íx¸Îx¸Ïx¸Ðx¸Ñx¸Òx¸Óx¸Ôx¸Õx¸Öx¸×x¸Øx¸Ùx¸Úx¸Ûx¸Üx¸Ýx¸Þx¸ßx¸àx¸áx¸âx¸ãx¸äx¸åx¸æx¸çx¸èx¸éx¸êx¸ëx¸ìx¸íx¸îx¸ïx¸ðx¸ñx¸òx¸óx¸ôx¸õx¸öx¸÷x¸øx¸ùx¸úx¸ûx¸üx¸ýx¹þx¹ÿx¹€y¹�y¹‚y¹ƒy¹„y¹…y¹†y¹‡y¹ˆy¹‰y¹Šy¹‹y¹Œy¹�y¹Žy¹�y¹�y¹‘y¹’y¹“y¹”y¹•y¹–y¹—y¹˜y¹™y¹šy¹›y¹œy¹�y¹žy¹Ÿy¹ y¹¡y¹¢y¹£y¹¤y¹¥y¹¦y¹§y¹¨y¹©y¹ªy¹«y¹¬y¹­y¹®y¹¯y¹°y¹±y¹²y¹³y¹´y¹µy¹¶y¹·yº¸y»¹y»ºy»»y»¼y»½y»¾y»¿y»Ày»Áy»Ây»Ãy¼Äy¼Åy¼Æy¼Çy¼Èy¼Éy¼Êy¼Ëy¼Ìy¼Íy¼Îy¼Ïy¼Ðy¼Ñy¼Òy¼Óy¼Ôy¼Õy¼Öy¼×y¼Øy¼Ùy¼Úy¼Ûy¼Üy¼Ýy¼Þy¼ßy¼ày¼áy¼ây¼ãy¼äy¼åy¼æy¼çy¼èy¼éy¼êy¼ëy¼ìy¼íy¼îy¼ïy¼ðy¼ñy¼òy¼óy¼ôy¼õy¼öy¼÷y¼øy¼ùy¼úy¼ûy¼üy¼ýy½þy½ÿy½€z½�z½‚z½ƒz½„z½…z½†z[‡z»ˆz»‰z»Šz»‹z»Œz»�z»Žz»�z»�z»‘z»’z»“z[”z[•z[–z[—z»˜z»™z»šz»›z»œz»�z»žz»Ÿz¾ z¾¡z¾¢z¾£z¾¤z¾¥z¾¦z¾§z¾¨z¾©z¾ªz¾«z¾¬z[­z[®z[¯z¿°z¿±z¿²z¿³z¿´z¿µz¿¶z¿·z¿¸z¿¹z¿ºz¿»z¿¼z¿½z¿¾zÀ¿zÀÀzÀÁzÀÂzÀÃzÀÄzÀÅzÀÆzÀÇzÀÈzÀÉzÀÊzÀËzÀÌzÀÍzÀÎzÀÏzÀÐzÀÑzÀÒzÀÓzÀÔzÀÕzÀÖzÀ×zÀØzÀÙzÀÚzÀÛzÀÜzÀÝzÀÞzÀßzÀàzÀázÀâzÀãzÀäzÀåzÀæzÀçzÀèzÀézÀêzÀëzÀìzÀízÀîzÀïzÀðzÀñzÀòzÀózÀôzÀõzÀözÀ÷zÀøzÀùzÀúzÀûzÀüzÀýzÀþzÀÿzÀ€{À�{À‚{Àƒ{À„{À…{À†{À‡{Àˆ{À‰{ÀŠ{À‹{ÀŒ{À�{ÀŽ{À�{À�{À‘{À’{À“{À”{À•{À–{À—{À˜{À™{Àš{À›{Àœ{À�{Àž{ÀŸ{À {À¡{À¢{À£{À¤{À¥{À¦{À§{À¨{À©{Àª{À«{À¬{À­{À®{À¯{À°{À±{À²{À³{À´{Àµ{À¶{À·{À¸{À¹{Àº{À»{À¼{À½{À¾{À¿{ÀÀ{ÀÁ{ÀÂ{ÀÃ{ÀÄ{ÁÅ{ÁÆ{ÁÇ{ÁÈ{ÁÉ{ÁÊ{ÁË{ÁÌ{ÁÍ{ÁÎ{ÁÏ{ÁÐ{ÁÑ{ÁÒ{ÁÓ{ÁÔ{ÁÕ{ÁÖ{Á×{ÁØ{ÁÙ{ÁÚ{ÁÛ{ÁÜ{ÂÝ{ÃÞ{Ãß{Ãà{Ãá{Ãâ{Ãã{Ãä{Ãå{Ãæ{Ãç{Ãè{Ãé{Ãê{Ãë{Ãì{Ãí{Ãî{Ãï{Ãð{Ãñ{Ãò{Ãó{Ãô{Ãõ{Ãö{Ã÷{Ãø{Äù{Äú{Äû{Äü{Äý{Äþ{Äÿ{Ä€|Ä�|Ä‚|ă|Ä„|Ä…|Ć|ć|Ĉ|ʼn|ÅŠ|Å‹|ÅŒ|Å�|[Ž|[�|[�|[‘|[’|[“|[”|[•|[–|[—|[˜|[™|[š|[›|[œ|[�|[ž|[Ÿ|[ |[¡|[¢|[£|[¤|[¥|[¦|Ƨ|ƨ|Æ©|ƪ|Æ«|Ƭ|Æ­|Æ®|Ư|ư|Ʊ|Ʋ|Ƴ|Æ´|Ƶ|ƶ|Æ·|Ƹ|ƹ|ƺ|Æ»|Ƽ|ƽ|ƾ|Æ¿|ÆÀ|ÆÁ|ÆÂ|ÆÃ|ÆÄ|ÆÅ|ÆÆ|ÆÇ|ÆÈ|ÆÉ|ÆÊ|ÆË|ÆÌ|ÆÍ|ÆÎ|ÆÏ|ÆÐ|ÆÑ|ÆÒ|ÆÓ|ÆÔ|ÆÕ|ÇÖ|È×|ÈØ|ÈÙ|ÈÚ|ÉÛ|ÉÜ|ÉÝ|ÉÞ|Éß|Éà|Éá|Éâ|Éã|Éä|Éå|Éæ|Éç|Éè|Éé|Éê|Éë|Éì|Éí|Éî|Éï|Éð|Éñ|Éò|Éó|Éô|Éõ|Éö|É÷|Éø|Éù|Éú|Éû|Éü|Éý|Éþ|Éÿ|É€}É�}Ê‚}˃}Ì„}Í…}͆}͇}͈}͉}ÍŠ}Í‹}ÍŒ}Í�}ÍŽ}Í�}Í�}Í‘}Í’}Í“}Í”}Í•}Í–}Í—}͘}Í™}Íš}Í›}Íœ}Í�}Íž}ÍŸ}Í }Í¡}Í¢}Í£}ͤ}Í¥}ͦ}ͧ}ͨ}Í©}ͪ}Í«}ͬ}Í­}Í®}ͯ}Ͱ}ͱ}Ͳ}ͳ}Í´}͵}Ͷ}Í·}͸}͹}ͺ}Í»}ͼ}ͽ};}Í¿}ÍÀ}ÍÁ}ÍÂ}ÍÃ}ÍÄ}ÍÅ}ÍÆ}ÍÇ}ÍÈ}ÍÉ}ÍÊ}ÍË}ÍÌ}ÍÍ}ÍÎ}ÍÏ}ÍÐ}ÍÑ}ÍÒ}ÍÓ}ÍÔ}ÍÕ}ÍÖ}Í×}ÍØ}ÍÙ}ÍÚ}ÍÛ}ÍÜ}ÍÝ}ÍÞ}Íß}Íà}Íá}Îâ}Îã}Îä}Îå}Îæ}Îç}Îè}Îé}Îê}Îë}Îì}Îí}Îî}Îï}Îð}Îñ}Îò}Îó}Îô}Îõ}Îö}Î÷}Îø}Îù}Îú}Îû}Îü}Îý}Îþ}Îÿ}΀~Î�~΂~΃~΄~Î…~Ά~·~Έ~Ή~Ί~΋~ÎŒ~Î�~ÎŽ~Î�~Î�~Α~Î’~Γ~Δ~Ε~Ï–~Ï—~Ϙ~Ï™~Ïš~Ï›~Ïœ~Ï�~Ïž~ÏŸ~Ï ~Ï¡~Ï¢~Ï£~Ϥ~Ï¥~Ϧ~ϧ~Ϩ~Ï©~Ϫ~Ï«~Ϭ~Ï­~Ïâ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêVF§Agda1¨Agda42©Agda71ªAgda154«AgdaÇReturn the error corresponding to an exit code from the Agda process ¦§¨©ª«¬­ ¦§¨©ª«¬­Ð Safe-Inferred#!$%&().145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêY®~AgdaÎRecords already processed entities and maps them to an internal identifier.¯~AgdaSupply of internal identifiers.°~AgdaNames connected to an entity±~Agda'Rendering that entity's name to a label²~AgdaGraph structure³~AgdaÁInternal module identifiers for construction of dependency graph.´~Agda*Translate an entity name into an internal ³~ . Returns True if the  ModuleNameä is new, i.e., has not been encountered before and is thus added to the map of processed modules.µ~Agda%Add an arc from importer to imported. ¶~·~°~±~²~¸~¹~º~»~¼~½~ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêZH²AgdaÉCut off structural order comparison at some depth in termination checker?³Agdac >= 0( means: record decrease up to including c+1.µAgdaThe default termination depth.²³´µ²³´µ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê\ȺAgda Semirings.¼Agda Addition.½AgdaMultiplication.¾Agda×Zero. The one is never used in matrix multiplication , one :: a -- ^ One.¿AgdaHasZero€ is needed for sparse matrices, to tell which is the element that does not have to be stored. It is a cut-down version of SemiRing, which is definable without the implicit ?cutoff.ÃAgdaThe standard semiring on ¾~s.ÄAgdaThe standard semiring on ¿~s.ÅAgdaThe standard semiring on À~s. º»¾½¼¿ÀÁÂà ¿Àº»¾½¼ÁÂà Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê]ÌÈAgdaA constant term.ÉAgda,A term with one hole and the (old) contents.ÊAgda%A term with many holes (error value).ÇÊÉÈÇÊÉÈ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê_~ÍAgdaBetter name for Á~.ÎAgdaGuard: return the action f only if the boolean is TrueÏAgdaGuard: return the value a only if the boolean is TrueÐAgdaBranch over a Â~ collection of values.ÑAgdaBranch over a Â~3 collection of values using the supplied action.ÍÎÏÐÑÎÏÐÑÍÑ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêeÍÒAgdaType of a filter for CallSiteÓAgdaType of an entry in a  CallStackÔAgdaType of a column of a SrcLocÕAgdaType of a line number of a SrcLocÖAgdaType of a filename of a SrcLoc | e.g. `srcfullAgdaUtilsFoo.hs`×Agda$Type of the name of a function in a CallSite | e.g. proveEverythingØAgdaType of the module name of a SrcLoc | e.g. ÒÓÙAgdaType of the package name of a SrcLoc | e.g. `Agda-2.¦@`ÚAgda1The same as the un-exported internal function in %GHC.Exceptions (prettyCallStackLines) Prints like: +doFoo, called at foo.hs:190:24 in main:MainÛAgdaPretty-print a  CallStack". This has a few differences from GHC.Stack.prettyCallStackLines–. We omit the "CallStack (from GetCallStack)" header line for brevity. If there is only one entry (which is common, due to the manual nature of the  HasCallStacké constraint), shows the entry on one line. If there are multiple, then the following lines are indented.ÜAgdaGet the most recent CallSite in a  CallStack, if there is one.ÝAgda CallStack! comprising only the most recent CallSiteÞAgda Transform a  CallStack by transforming its list of CallSiteßAgda Transform a  CallStack by filtering each CallSiteàAgdaPops n entries off a  CallStack using  popCallStack.. Note that frozen callstacks are unaffected.!NOba`_^]\[cdeÒÓÔÕÖרÙÚÛÜÝÞßàáâã Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêg“äAgda%The unicode replacement character ýÿ .åAgda&Is a character a surrogate code point.æAgda?Map surrogate code points to the unicode replacement character.çAgdaðTotal function to convert an integer to a character. Maps surrogate code points to the replacement character U+FFFD.äåæçäåæç Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêi§Ã~Agda3Tokenization for environment variable substitution.Ä~Agda~.Å~Agda $VARIABLE or @${VARIABLE}$.Æ~AgdaOrdinary characters.Ç~AgdaTokenize a string. The ~ is recognized as $HOME% only at the beginning of the string.È~AgdaHome directory.Agda&Environment variable substitution map.AgdaInput.AgdaOutput with variables and ~ (home) substituted.èè Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêjëíìîëíìî Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãês½óAgdaRepeat a state transition f :: a -> (b, a) with output b while condition condÙ on the output is true. Return all intermediate results and the final result where cond is False.(Postconditions (when it terminates): (fst (last (iterWhile cond f a)) == False. $all fst (init (interWhile cond f a)).ôAgda®Repeat something while a condition on some state is true. Return the last state (including the changes of the last transition, even if the condition became false then).õAgdaMonadic version of ô.öAgda%A version of the trampoline function.The usual function iterates f :: a -> Maybe a as long as Just{}, is returned, and returns the last value of a upon Nothing.ÉusualTrampoline f = trampolineWhile $ a -> maybe (False,a) (True,) (f a).trampolineWhile is very similar to  repeatWhileÁ, only that it discards the state on which the condition went False;, and returns the last state on which the condition was True.÷AgdaMonadic version of ö.øAgdaÕMore general trampoline, which allows some final computation from iteration state a into result type b.ùAgdaMonadic version of ø.úAgdaIteration to fixed-point.iterateUntil r f a0 iterates endofunction f, starting with a0 , until r( relates its result to its input, i.e., f a r a.9This is the generic pattern behind saturation algorithms.If f is monotone with regard to r , meaning a r b implies f a r f b , and f-chains starting with a09 are finite then iteration is guaranteed to terminate.*A typical instance will work on sets, and r could be set inclusion, and a0 the empty set, and f- the step function of a saturation algorithm.ûAgdaMonadic version of ú.üAgdaü n f x applies f to x n times and returns the result.)The applications are calculated strictly.ýAgdaapplyWhen b f a applies f to a when b.þAgdaapplyUnless b f a applies f to a unless b.ÿAgdaMonadic version of  applyWhen€AgdaMonadic version of  applyUnlessóôõö÷øùúûüýþÿ€óôõö÷øùúûüýþÿ€ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêtÐ�AgdaSemiring with idempotent É~ == dioid‚AgdaE.g. +ƒAgdaneutral element of compose , e.g. zero�ƒ‚„…†‡ˆŠ‰‹Œ�Ž‹Œ�ŽˆŠ‰†‡„…�ƒ‚  Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêys �Agda?A decoration is a functor that is traversable into any functor.The Ê~Ó superclass is given because of the limitations of the Haskell class system.  traverseF actually implies functoriality.Minimal complete definition:  traverseF or  distributeF.‘Agda traverseF is the defining property.’Agda%Decorations commute into any functor.“Agda?Composition: pure function after functorial (monadic) function.”AgdaThe true pure for loop. ÔÕ is a misnomer, it should be forA.•AgdaInfix version of ”.–Agda#Any decoration is traversable with traverse = traverseF. Just like any Ë~6 is a functor, so is any decoration, given by just  traverseF , a functor.—AgdaAny decoration is a lens. set is a special case of dmap.˜Agda0A typical decoration is pairing with some stuff.™Agda3Decorations compose. (Thus, they form a category.)šAgda%The identity functor is a decoration. ST�‘’“”•–— “”�‘’–—ST•“9 •1 Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêz¸åAgdaShould not be used when æ could be used.æAgdaShould only be used in let or where.óAgda7Unstructured pragma (Andreas, 2017-08-23, issue #2712).Ü›œ�žŸ ¡¢¤£¥¦§©«ª¨¬­®»º¹¸¶³²¯µ±°´·¼¾½¿ÇÆÅÄÃÂÁÀÈÎÍÌÊÉËÏÐÑÒÓÕÔÖרÙÛÚÜÝÞàßáèçæâäãåéêëìðïîíñóòôõöÜôõñóòìðïîíêëáèçæâäãåéÞàßÜÝÙÛÚØÖ×ÓÕÔÑÒÏÐÈÎÍÌÊÉË¿ÇÆÅÄÃÂÁÀ¼¾½®»º¹¸¶³²¯µ±°´·¬­§©«ª¨¥¦¢¤£Ÿ ¡�ž›œö Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê}š‹Agda The function ŒÁ makes every function argument, case and generator pattern, and æß binding strict (except for those patterns that are marked as irrefutable, and anything in a è or »:). Note that only the outermost patterns are made strict.‹Œ‹Œ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê~ª™AgdaCatch Ì~s.›Agda#Upon exception, the state is reset.œAgda+Upon exception, the written output is lost.�Agda Alias of Í~ for the IO monad.™š™š Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêWžAgdaÁReturns a close function for the file together with the contents.žž Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãꂲÎ~Agda=Action to be carried out for copying a directory recursively.Ï~AgdaCreate directory if missing.Ð~AgdaCopy file if changed.ŸAgdacopyDirContent src dest recursively copies directory src onto dest.×First, a to-do list of copy actions is created. Then, the to-do list is carried out.ÍThis avoids copying files we have just created again, which can happen if src and dest( are not disjoint. (See issue #2705.)Ñ~AgdaPerform scheduled Î~.Ò~AgdacopyDirContentDryRun src dest; creates a to-do list for recursively copying directory src onto dest.Ó~AgdacopyIfChanged src dst makes sure that dst' exists and has the same content as dst.ŸŸ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêƒ_ AgdaÅCreates a temporary file, writes some stuff, and returns the filepath    Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê…ÃÔ~AgdaåConverts many character sequences which may be interpreted as line or paragraph separators into 'n'.ÀNote that 'rn' is assumed to have already been converted to 'n'.¡Agda‰Reads a UTF8-encoded text file and converts many character sequences which may be interpreted as line or paragraph separators into 'n'.¢AgdaÑWrites a UTF8-encoded text file. The native convention for line endings is used.£AgdaÑWrites a UTF8-encoded text file. The native convention for line endings is used.¡¢£¡¢£! Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê†j¤AgdaRead Õ~+, modify it strictly, and return old value. Ö~×~Ø~Ù~Ú~Õ~Û~Ü~Ý~Þ~¤¤" Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê‹® ¥AgdaÀMonads in which we can catch an "impossible" error, if possible.¦Agda Catch any ª exception.§Agda Catch only ª# exceptions selected by the filter.¨Agda Version of ¦, with argument order suiting short handlers.©Agda Version of §, with argument order suiting short handlers.ªAgdaú"Impossible" errors, annotated with a file name and a line number corresponding to the source code location of the error.«Agda7We reached a program point which should be unreachable.¬Agda Impossible‡ with a different error message. Used when we reach a program point which can in principle be reached, but not for a certain run.­AgdaàWe reached a program point without all the required primitives or BUILTIN to proceed forward. (ImpMissingDefinitions neededDefs forThis®AgdaáAbort by throwing an "impossible" error. You should not use this function directly. Instead use  IMPOSSIBLE¯Agda Throw an  Impossible* error reporting the *caller's* call site.±Agda Throw an  UnreachableŽ error reporting the *caller's* call site. Note that this call to "withFileAndLine" will be filtered out due its filter on the srcLocModule. ¥¨©§¦ª­¬«®¯°± ª­¬«®¥¨©§¦¯°±# Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãꎺAgdatoImpossible e extracts the  Impossible value raised via  IMPOSSIBLE to create the element e of type Empty. It proceeds by evaluating eÞ to weak head normal form and catching the exception. We are forced to wrap things in a Maybe because of catchImpossible's type.¾AgdaValues of type ¸ are not forced, because ¸' is used as a constructor argument in �Ö.¸¹º¸¹º$ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê‘øÀAgdaÙA set with duplicates. Faithfully stores elements which are equal with regard to (==).ÂAgda%The list contains all occurrences of aÎ (not just the duplicates!). Hence, the invariant: the list is never empty.ÃAgdaIs the bag empty?ÄAgda7Number of elements in the bag. Duplicates count. O(n).ÅAgda (bag ! a) finds all elements equal to a(. O(log n). Total function, returns [] if none are.ÆAgda O(log n).ÇAgda O(log n).ÈAgdaÃReturn the multiplicity of the given element. O(log n + count _ _).ÉAgdaO(1)ÊAgdaO(1)ÍAgda "insert a b = union b (singleton a)ÎAgda !fromList = unions . map singletonÏAgda:Returns the elements of the bag, grouped by equality (==).ÐAgda!Returns the bag, with duplicates.ÑAgda#Returns the bag without duplicates.ÒAgda!Returns the bag, with duplicates.ÀÂÁÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÀÂÁÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕ% Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê–™�AgdaAgsy's meta variables.aÅ the type of the metavariable (what it can be instantiated with). blk= the search control information (e.g. the scope of the meta).‘AgdaþMaybe an instantiation (refinement). It is usually shallow, i.e., just one construct(or) with arguments again being metas.’AgdaÒDoes this meta block a principal constraint (i.e., a type-checking constraint).“Agda:List of observers, i.e., constraints blocked by this meta.”Agda4Used for experiments with independence of subproofs.•Agda Experimental.šAgdaResult of type-checking.›AgdaSuccess.œAgdaDefinite failure.�Agda Experimental.žAgda$Parallel conjunction of constraints.ŸAgdaExperimental, related to ”. First arg is sidecondition. AgdaìForking proof on something that is not part of the term language. E.g. whether a term will reduce or not.¡Agda Obsolete.¤AgdaTrav instance a with block type blkóÜÞÝßàáãâäçæåèëêéìíîïðñòóöõô÷ùøúüûýþÿ€‚�ƒˆ‡†…„‰Ž�Œ‹Š�•”“’‘�–—˜™š¡Ÿ�› œž¢£¤¥§¦¨ª©«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎ󨪩¥§¦¤¢£š¡Ÿ�› œž˜™—–�•”“’‘�«¬­‰Ž�Œ‹Šƒˆ‡†…„®¯€‚�þÿý°±²³´úüû÷ùøóöõôñòµ¶·ðíîï¸ìèëêéäçæåáã⹺»¼½¾¿ÀÁÂÃÄàßÅÆÇÈÉÊËÌÍÜÞÝÎ& Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê›/ ÝAgdaÒRepresents a set of integers. Invariants: - All cannot be the argument to ß~ or à~ - at most one  IntsBelow - at most one  IntsAbove¦ - if `Below lo` and `Below hi`, then `lo < hi` - if `Below lo .. (Some xs)` then `all (> lo) xs` - if `Above hi .. (Some xs)` then `all (< hi - 1) xs`ßAgda MembershipàAgdaAll integers `< n`áAgdaAll integers `>= n`âAgdaA single integer.á~AgdaFrom a list of integers.ãAgda No integers.äAgda All integers.åAgda'If finite, return the list of elements.æAgda Invariant. ÝÞßàáâãäåæ ÝãäàáâÞßåæ' Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêžà îAgdaÇVan Laarhoven style homogeneous lenses. Mnemoic: "Lens inner outer".ñAgdaGet inner part i of structure o as designated by  Lens' i o.òAgdaSet inner part i of structure o as designated by  Lens' i o.óAgdaModify inner part i of structure o using a function i -> i.ôAgda8Focus on a part of the state for a stateful computation.õAgdaRead a part of the state.öAgdaWrite a part of the state.÷AgdaModify a part of the state.øAgda'Modify a part of the state monadically.ùAgda?Modify a part of the state monadically, and return some result.úAgda#Modify a part of the state locally.ûAgda Ask for part of read-only state.üAgda/Modify a part of the state in a subcomputation.•ëìíîïðñòóôõö÷øùúûüýþëìíîïðñòóôõö÷øùúûüýþ•ñ8ö4÷4ø4ù4( Safe-Inferred&!$%&()./0145789:;ÀÁÂÃÄÆÈËÐÓÖØÙÛâãê¢K ÿAgda An index into a type-level list.‚Agda4Lists indexed by a type-level list. A value of type All p [x�A..x™A]% is a sequence of values of types p x�A, .., p x™A.…Agda&Existential wrapper for indexed types.‡AgdaUnpacking a wrapped value.ˆAgda/Constructing an indexed list from a plain list.‰Agda/Turning an indexed list back into a plain list.ŠAgda!Indices are just natural numbers.‹AgdaMapping over an indexed list.ŒAgda>If you have an index you can get a lens for the given element.�Agda)Looking up an element in an indexed list.ŽAgda!All indices into an indexed list.ÿ�€‚„ƒ…†‡ˆ‰Š‹Œ�Ž…†‡‚„ƒˆ‰ÿ�€Š‹Œ�Ž) Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê£Q�AgdaTokenising the input (makes ² cleaner)˜Agda*Options for Auto, default value and lenses$�”—�•–‘“’˜ž�œ›š™Ÿ¡ ¢£¥¤¦©¨§ª«¬­®¯°±²$¦©¨§£¥¤¢Ÿ¡ ˜ž�œ›š™ª«¬­®¯�”—�•–‘“’°±²* Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâã꤈¸AgdaÃ(View source:) This is how you implement a lens for a record field.´·¶µ¸¹´·¶µ¸¹+ Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâã꥛»Agda;Update monadically the value at one position (must exist!).¼Agda Wrapper for » for convenience.½AgdaFilter a map based on the keys.»¼½»¼½, Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê«l¾AgdaRetain object when tag is â~.¿Agda unionWith for collections of size <= 1.ÀAgda unionsWith for collections of size <= 1.ÁAgda Unzipping a list of length <= 1.ÂAgdaFiltering a singleton list. filterMaybe p a = ã~ (ä~ p [a])ÃAgda Version of å~" with different argument ordering.ÄAgda Version of æ~ with different argument ordering. Often, we want to case on a ç~%, do something interesting in the è~( case, but only a default action in the é~* case. Then, the argument ordering of  caseMaybe is preferable. $caseMaybe m d f = flip (maybe d) m fÅAgdaÄ with flipped branches.ÆAgdaMonadic version of æ~.ÇAgdaMonadic version of ê~.ÈAgdaMonadic version of Ä. That is, Æ$ with a different argument ordering.ÉAgdaÈ with flipped branches.ÊAgdaA more telling name for ר for the ç~ collection type. Or: Ä without the é~ case.ËAgdaÄ without the è~ case.ÌAgdaÈ without the é~ case.ÍAgdaÈ without the è~ case.ÎAgdaLazy version of allJust  . sequence. (allJust = mapM for the Maybe/ monad.) Only executes monadic effect while isJust.ÏAgdaLift a maybe to an Alternative.ç~é~è~ë~æ~å~ã~ì~í~ê~î~ï~¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎϾ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ- Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãꬰÐAgda"Simple, non-reentrant memoisation.ÑAgdaÒRecursive memoisation, second argument is the value you get on recursive calls.ÐÑÒÓÐÑÒÓ. Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê­SÔAgda/Maximum of on-negative (small) natural numbers.ÔÖÕÔÖÕ/ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê®0àAgda Satisfying null empty == True.ìAgdaA ç~ is à' when it corresponds to the empty list. Þàßáâãäåæçè Þàßáâãäåæçè0 Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê´Ž†Agda Analogous to ÙÚ in  Data.Maybe.‡Agda Analogous to ÙÛ in  Data.Maybe.ˆAgda Analogous to ÙÜ in  Data.Maybe.‰Agda Analogous to ÙÝ in  Data.Maybe.ŠAgda unionWith for collections of size <= 1.‹Agda Unzipping a list of length <= 1.ŒAgdaFiltering a singleton list. filterMaybe p a = † (ä~ p [a])�Agda Version of ‰" with different argument ordering.ŽAgda Version of € with different argument ordering. Often, we want to case on a �%, do something interesting in the ‚( case, but only a default action in the ƒ* case. Then, the argument ordering of  caseMaybe is preferable. (caseMaybe m err f = flip (maybe err) m f�AgdaMonadic version of €.�AgdaMonadic version of ý.‘AgdaMonadic version of Ž. That is, �$ with a different argument ordering.’Agda‘ with flipped branches.“AgdaA more telling name for ×Þ for the � collection type. Or: Ž without the ƒ case.”Agda‘ without the ƒ case.–AgdaNote that strict Maybe is an ð~Ï only modulo strictness. The laws only hold in the strict semantics. Eg. pure f  * pure _|_ = _|_#, but according to the laws for ð~ it should be  pure (f _|_)3. We ignore this issue here, it applies also to Â~ and Ë~.üýþÿ€�ƒ‚„…†‡ˆ‰Š‹Œ�Ž��‘’“”üýþÿ€�ƒ‚„…†‡ˆ‰Š‹Œ�Ž��‘’“”1 Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê½·—AgdaInclusion comparison wrapper.šAgdaPointwise comparison wrapper.�AgdaDecidable partial orderings. Agda6The result of comparing two things (of the same type).¡Agda Less than.¢AgdaLess or equal than.£AgdaEqual¤AgdaGreater or equal.¥Agda Greater than.¦AgdaNo information (incomparable).§Agda8Comparing the information content of two elements of  '. More precise information is smaller.Includes equality: x § x == True.¨Agda Opposites.related a po b iff related b (oppPO po) a.©AgdaòCombining two pieces of information (picking the least information). Used for the dominance ordering on tuples.orPO1 is associative, commutative, and idempotent. orPO has dominant element POAny, but no neutral element.ªAgdaChains (transitivity)  x R y S z.seqPO1 is associative, commutative, and idempotent. seqPO has dominant element POAny and neutral element (unit) POEQ.«AgdaEmbed ñ~.¬Agda%Represent a non-empty disjunction of ñ~s as  .­AgdaA  ! information is a disjunction of ñ~ informations.®AgdaAny ò~ is a �.¯Agda+Are two elements related in a specific way? related a o b holds iff comparable a b is contained in o.±Agda1Partial ordering forms a monoid under sequencing.²Agda.Less is ``less general'' (i.e., more precise).³Agda&Pointwise partial ordering for tuples.related (x1,x2) o (y1,y2) iff related x1 o x2 and related y1 o y2.´Agda$Partial ordering for disjoint sums: Left _ and Right _ are unrelated.µAgdaé~ and è~ _ are unrelated.Partial ordering for Maybe a is the same as for  Either () a.¹Agda4The pointwise ordering for lists of the same length.ñThere are other partial orderings for lists, e.g., prefix, sublist, subset, lexicographic, simultaneous order.ºAgda(Sets are partially ordered by inclusion.»AgdaSublist for ordered lists.—™˜šœ›�žŸ ¦¥¤£¢¡§¨©ª«¬­®¯ ¦¥¤£¢¡§¨©ª«¬­Ÿ�ž®¯šœ›—™˜2 Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÁ*ÇAgda?Completing POMonoids with inverses to form a Galois connection.ÂLaw: composition and inverse composition form a Galois connection. & related (inverseCompose p x) POLE y  == related x POLE (p <> y) ÉAgdaPartially ordered monoid."Law: composition must be monotone. Ð related x POLE x' && related y POLE y' ==> related (x <> y) POLE (x' <> y') ÊAgdaPartially ordered semigroup."Law: composition must be monotone. Ð related x POLE x' && related y POLE y' ==> related (x <> y) POLE (x' <> y') ËAgdahasLeftAdjoint x checks whether  x^-1 := x È mempty is such that x È y == x^-1 <> y for any y.ÇÈÉÊËÊÉÇÈË3 Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÂiÑAgdaIf f a contains many copies of a™ they will all be the same pointer in the result. If the function is well-behaved (i.e. preserves the implicit equivalence, this shouldn't matter).ÌÍÎÏÐÑÌÍÎÐÏÑ4 Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÃyÜAgdaStar semirings ( 5https://en.wikipedia.org/wiki/Semiring#Star_semirings).ÞAgda Semirings ( &https://en.wikipedia.org/wiki/Semiring).ÜÝÞâáàßÞâáàßÜÝ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÃì5 Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÄ÷éAgda Overloaded  singleton constructor for collections.ëAgdaßA create-only possibly empty collection is a monoid with the possibility to inject elements.éêëìëìéê6 Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêǘƒAgdaCharacteristic identifiers.„AgdaGiven a function f :: a -> NonEmpty C6 which returns a non-empty list of characteristics C of a, partition a list of a†s into groups such that each element in a group shares at least one characteristic with at least one other element of the group.…AgdaPartition a list of a5s paired with a non-empty list of characteristics C… into groups such that each element in a group shares at least one characteristic with at least one other element of the group.ƒ„…ƒ„… Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêËZó~AgdaLet n be the size of type a.‡Agda Time O(n)!ˆAgda Time O(1).‰Agdanot . member a . Time O(1).ŠAgda Time O(n).‹AgdaThe empty set. Time O(n).ŒAgdaThe full set. Time O(n).�AgdaA singleton set. Time O(n).ŽAgda Time O(n).�Agda Time O(n).�Agda Time O(n).‘Agda Time O(n).’Agda Time O(n).“Agda Time O(n).”Agda Time O(n).•Agda Time O(n).–Agda Time O(n).—Agda Time O(n).˜Agda Time O(n).™Agda Time O(n).šAgda Time O(n).›Agda Time O(n).œAgda Time O(n).ô~AgdaTime O(n). Assumes Bool-vector of length n.õ~AgdaTime O(n). Produces Bool-vector of length n.ö~AgdaTime O(n). Produces Bool-vector of length n.÷~AgdaTime O(n). Bulk insert/delete.†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ†’��‘—‹š›œŽ“Š•ˆ‰‡�˜™Œ”–7 Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÎë ¢Agda&Classification of identifier variants.£AgdaIdentifier ends in Int many primes.¤AgdaIdentifier ends in number Int (ordinary digits).¥AgdaIdentifier ends in number Int (subscript digits).¦Agda'Is the character one of the subscripts '€A'-'‰A'?§Agda Converts '0'-'9' to '€A'-'‰A'-Precondition: The digit needs to be in range.¨Agda Converts '€A'-'‰A' to '0'-'9'.-Precondition: The digit needs to be in range.©Agda?Increase the suffix by one. If no suffix yet, put a subscript 13 unless users do not want us to use any unicode.ªAgda Parse suffix.«Agda Print suffix. ¢¥£¤¦§¨©ª«¬ ¦§¨¢¥£¤©ª«¬8 Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÐf­AgdaDisjoint sum of three.±AgdaEnum type with 3 elements.µAgdaPartition a list into 3 groups.)Preserves the relative order or elements.¶AgdaPartition a list into 3 groups.)Preserves the relative order or elements. ­°¯®±³´²µ¶·¸ ±³´²µ­°¯®¶·¸9 Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÖÁAgdaFinite map from [k] to v.With the strict ç~ type, Á is also strict in v.ø~Agda"Helper function used to implement à and Ä.ÃAgdaSingleton trie.ÄAgdaeveryPrefix k v! is a trie where every prefix of k (including k itself) is mapped to v.ÅAgdaLeft biased union.#union = unionWith ( new old -> new).ÆAgda/Pointwise union with merge function for values.ÇAgda.Insert. Overwrites existing value if present. %insert = insertWith ( new old -> new)ÈAgda6Insert with function merging new value with old value.ÉAgda.Delete value at key, but leave subtree intact.ÊAgda*Adjust value at key, leave subtree intact.ËAgdaConvert to ascending list.ÌAgdaConvert to ascending list.ÍAgdaÝConvert to list where nodes at the same level are ordered according to the given ordering.ÎAgda×Create new values based on the entire subtrie. Almost, but not quite comonad extend.ÏAgda8Returns the value associated with the given key, if any.ÐAgda%Is the given key present in the trie?ÑAgda&Collect all values along a given path.ÒAgda(Get the subtrie rooted at the given key.ÓAgdaFilter a trie.ÔAgda Key lens.ÕAgda Empty trie.ßÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÁÂßÃÄÇÈÅÆÊÉËÌÍÏÐÑÒÎÓÔ  Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê×£ÝAgdaBifunctoriality for pairs.ÞAgda mapFst f = f -*- idßAgda mapSnd g = id -*- gàAgdaLifted pairing.æAgdaMonadic version of Ý.çAgdaMonadic Þ.èAgdaMonadic ß.UÛÜÝÞßàáâãäåæçèÝÞßàáâãUäåæçèÛÜÝ2à3: Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê÷JÅîAgda$Internal state for stripping suffix.ïAgdaError.ðAgda8"Negative string" to remove from end. List may be empty.ñAgda+"Positive string" (result). Non-empty list.õAgdaÐAppend a single element at the end. Time: O(length); use only on small lists.öAgda5Case distinction for lists, with list first. O(1).Cf. /ß.÷Agda5Case distinction for lists, with list first. O(1).Cf. /ß.øAgda4Case distinction for lists, with list last. O(1).ùAgdaÆHead function (safe). Returns a default value on empty lists. O(1). >headWithDefault 42 [] = 42 headWithDefault 42 [1,2,3] = 1úAgdaTail function (safe). O(1).ûAgdaÆTail function (safe). Returns a default list on empty lists. O(1).üAgdaLast element (safe). O(n).ýAgdaÅLast element (safe). Returns a default list on empty lists. O(n).þAgda3Last element of non-empty list (safe). O(n). last1 a as = last (a : as)ÿAgda"Last two elements (safe). O(n).€AgdaOpposite of cons (:), safe. O(1).�AgdaMaybe cons. O(1). "mcons ma as = maybeToList ma ++ as‚Agdaù~ and ú~ in one go, safe. O(n).ƒAgdaù~ and ú~& of non-empty list, safe. O(n). *initLast1 a as = (init (a:as), last (a:as)„Agdaù~& of non-empty list, safe. O(n). init1 a as = init (a:as)…Agdainit, safe. O(n).†Agdainit, safe. O(n).‡Agda4Lookup function (partially safe). O(min n index).ˆAgdaÍLookup function with default value for index out of range. O(min n index).The name is chosen akin to àá.‰AgdaåFind an element satisfying a predicate and return it with its index. O(n) in the worst case, e.g. findWithIndex f xs = Nothing.%TODO: more efficient implementation!?ŠAgdaA generalised variant of  elemIndex. O(n).‹AgdadownFrom n = [n-1,..1,0] . O(n).ŒAgda:Update the first element of a list, if it exists. O(1).�Agda9Update the last element of a list, if it exists. O(n).ŽAgda/Update nth element of a list, if it exists. O(min index n). Precondition: the index is >= 0.�Agda#splitExactlyAt n xs = Just (ys, zs) iff  xs = ys ++ zs and genericLength ys = n.�Agda*Drop from the end of a list. O(length). &dropEnd n = reverse . drop n . reverseForces the whole list even for n==0.‘AgdaÉSplit off the largest suffix whose elements satisfy a predicate. O(n).spanEnd p xs = (ys, zs) where  xs = ys ++ zs and all p zs and #maybe True (not . p) (lastMaybe yz).’AgdaBreaks a list just after1 an element satisfying the predicate is found. breakAfter1 even 1 [3,5,2,4,7,8]([1,3,5,2],[4,7,8])“AgdaBreaks a list just after1 an element satisfying the predicate is found.breakAfter even [1,3,5,2,4,7,8]([1,3,5,2],[4,7,8])”AgdaA generalized version of  takeWhile . (Cf. mapMaybe vs. filter#). @O(length . takeWhileJust f)."takeWhileJust f = fst . spanJust f.•AgdaA generalized version of span. O(length . fst . spanJust f).–AgdaPartition a list into é~s and è~ s. O(n). ÌpartitionMaybe f = partitionEithers . map ( a -> maybe (Left a) Right (f a))Note: å~ f = snd . partitionMaybe f.—AgdaLike ä~Ó, but additionally return the last partition of the list where the predicate is False everywhere. O(n).˜AgdaLike å~Þ, but additionally return the last partition of the list where the function always returns Nothing . O(n).™AgdaSublist relation.šAgda7All ways of removing one element from a list. O(n²).›Agda6Compute the common prefix of two lists. O(min n m).œAgdaÌDrops from both lists simultaneously until one list is empty. O(min n m).�AgdaäCheck if a list has a given prefix. If so, return the list minus the prefix. O(length prefix).žAgda4Compute the common suffix of two lists. O(n + m).ŸAgdastripSuffix suf xs = Just pre iff xs = pre ++ suf. O(n). Agda&stripReversedSuffix rsuf xs = Just pre iff xs = pre ++ reverse suf . O(n).¡Agda"Find out whether the first string xs7 has a suffix that is a prefix of the second string ysœ. So, basically, find the overlap where the strings can be glued together. Returns the index where the overlap starts and the length of the overlap. The length of the overlap plus the index is the length of the first string. Note that in the worst case, the empty overlap  (length xs,0) is returned.¢Agda¢ f = groupBy ((û~ ) `on` f) ü~ ý~ (þ~ `on` f). O(n log n).£Agda A variant of ÿ~Ó which applies the predicate to consecutive pairs. O(n). DEPRECATED in favor of â.¤AgdaÆSplit a list into sublists. Generalisation of the prelude function words . O(n). words xs == wordsBy isSpace xs¥Agda2Chop up a list in chunks of a given length. O(n).¦AgdaÆChop a list at the positions when the predicate holds. Contrary to ¤Û, consecutive separator elements will result in an empty segment in the result. O(n). *intercalate [x] (chopWhen (== x) xs) == xs§AgdaåCheck membership for the same list often. Use partially applied to create membership predicate hasElem xs :: a -> Bool. First time:  O(n log n) in the worst case.Subsequently: O(log n).Specification: hasElem xs == (€ xs).¨Agda&Check whether a list is sorted. O(n).Assumes that the ò~% instance implements a partial order.©Agda×Check whether all elements in a list are distinct from each other. Assumes that the �- instance stands for an equivalence relation.O(n²) in the worst case distinct xs == True.ªAgdaAn optimised version of ©. O(n log n)./Precondition: The list's length must fit in an ¿~.«AgdaéReturns an (arbitrary) representative for each list element that occurs more than once. O(n log n).¬AgdaìRemove the first representative for each list element. Thus, returns all duplicate copies. O(n log n).&allDuplicates xs == sort $ xs \ nub xs.­AgdaûPartition a list into first and later occurrences of elements (modulo some quotient given by a representation function).Time: O(n log n).Specification: ÅnubAndDuplicatesOn f xs = (ys, xs List.\\ ys) where ys = nubOn f xs®AgdaEfficient variant of nubByà for lists, using a set to store already seen elements. O(n log n)Specification: )nubOn f xs == 'nubBy' ((==) `'on'` f) xs.¯AgdaEfficient variant of nubBy for finite lists. O(n log n). ÆuniqOn f == 'List.sortBy' (compare `'on'` f) . 'nubBy' ((==) `'on'` f),If there are several elements with the same f--representative, the first of these is kept.°AgdaÆChecks if all the elements in the list are equal. Assumes that the �6 instance stands for an equivalence relation. O(n).±AgdaNon-efficient, monadic nub . O(n²).²Agda5Requires both lists to have the same length. O(n). Otherwise, Nothing is returned.³AgdaLike ‚Ú but keep the rest of the second list as-is (in case the second list is longer). O(n). Ä zipWithKeepRest f as bs == zipWith f as bs ++ drop (length as) bs µAgdaÊImplemented using tree recursion, don't run me at home! O(3^(min n m)).¶Agda*Implemented using dynamic programming and  Data.Array . O(n*m).óAgdaThe list after the split point.ôAgda The list before the split point.Êîñïðòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·Êõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Žôó��‘’“”•–—˜™š›œ�žŸò îñïð¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶· Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêürÃAgda%Return the last element and the rest.ÄAgdaBuild a list with one element.More precise type for snoc.ÅAgdaMore precise type for :â. A variant of ÿ~: which applies the predicate to consecutive pairs. O(n).ÆAgdaBreaks a list just after1 an element satisfying the predicate is found.breakAfter even [1,3,5,2,4,7,8]([1,3,5,2],[4,7,8])ÇAgda(Concatenate one or more non-empty lists.ÈAgdaLike àã8. Duplicates in the first list are not removed. O(nm).ÌAgdaÆChecks if all the elements in the list are equal. Assumes that the �6 instance stands for an equivalence relation. O(n).ÍAgdaLike ï~.ÎAgdaLike A.ÏAgdaLike äå.ÐAgdaLike äæ.ÑAgdaLike äç.ÒAgdaNon-efficient, monadic , . O(n²).ÓAgdaLike èé.ÔAgdaLike èé.Ð !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJºÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔкÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ; Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê_ ¸Agda¸É adds double quotes around the string, replaces newline characters with nè, and escapes double quotes and backslashes within the string. This is different from the behaviour of ƒ: > „ $ ƒ "\x2200" "\8704" > „ $ ¸ "\x2200" "€D" Ö(The code examples above have been tested using version 4.2.0.0 of the base library.)¹AgdaÇTurns the string into a Haskell string literal, avoiding escape codes.ºAgda$Adds hyphens around the given stringputStrLn $ delimiter "Title"<”@”@”@”@ Title ”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@”@»Agda1Adds a final newline if there is not already one.¼Agda-Indents every line the given number of steps.½Agda6Show a number using comma to separate powers of 1,000.¾AgdaRemove leading whitespace.¿AgdaRemove trailing whitespace.ÀAgda'Remove leading and trailing whitesapce. ¸¹º»¼½¾¿À ¸¹º»¼½¾¿À< Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÓÕAgdaÞThing decorated with its size. The thing should fit into main memory, thus, the size is an Int.ÙAgda,The size of a collection (i.e., its length).ÛAgdaCache the size of an object.æAgdaReturn the cached size.ÕÖרÙÚÛÙÚÕÖרÛ= Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê%çAgda%Things that support delayed dropping.ëAgda)Delayed dropping which allows undropping.íAgda&Non-negative number of things to drop.îAgdaWhere to drop from.ïAgda3Invert a Permutation on a partial finite int map. inversePermute perm f = f' such that permute perm f' = f!Example, with map represented as  [Maybe a]: ò f = [Nothing, Just a, Just b ] perm = Perm 4 [3,0,2] f' = [ Just a , Nothing , Just b , Nothing ]  Zipping perm with f gives  [(0,a),(2,b)], after compression with  catMaybes. This is an IntMap9 which can easily written out into a substitution again.ñAgdaPartial permutations. Examples:)permute [1,2,0] [x0,x1,x2] = [x1,x2,x0] (proper permutation).&permute [1,0] [x0,x1,x2] = [x1,x0] (partial permuation).,permute [1,0,1,2] [x0,x1,x2] = [x1,x0,x1,x2]- (not a permutation because not invertible).Agda typing would be: 9Perm : {m : Nat}(n : Nat) -> Vec (Fin n) m -> Permutation m is the Ú of the permutation.õAgda'permute [1,2,0] [x0,x1,x2] = [x1,x2,x0] More precisely, permute indices list = sublist , generates sublist from list1 by picking the elements of list as indicated by indices. *permute [1,3,0] [x0,x1,x2,x3] = [x1,x3,x0]Agda typing: ,permute (Perm {m} n is) : Vec A m -> Vec A n÷AgdaIdentity permutation.øAgda"Restrict a permutation to work on n elements, discarding picks >=n.ùAgda9Pick the elements that are not picked by the permutation.úAgdaliftP k takes a  Perm {m} n to a Perm {m+k} (n+k). Analogous to êë?, but Permutations operate on de Bruijn LEVELS, not indices.ûAgda 2permute (compose p1 p2) == permute p1 . permute p2üAgda invertP err p is the inverse of p) where defined, otherwise defaults to err. composeP p (invertP err p) == pýAgdaÉTurn a possible non-surjective permutation into a surjective permutation.þAgda ?permute (reverseP p) xs == reverse $ permute p $ reverse xs Example: Ñ permute (reverseP (Perm 4 [1,3,0])) [x0,x1,x2,x3] == permute (Perm 4 $ map (3-) [0,3,1]) [x0,x1,x2,x3] == permute (Perm 4 [3,0,2]) [x0,x1,x2,x3] == [x3,x0,x2] == reverse [x2,x0,x3] == reverse $ permute (Perm 4 [1,3,0]) [x3,x2,x1,x0] == reverse $ permute (Perm 4 [1,3,0]) $ reverse [x0,x1,x2,x3] With reversePã, you can convert a permutation on de Bruijn indices to one on de Bruijn levels, and vice versa.ÿAgda8permPicks (flipP p) = permute p (downFrom (permRange p)) or Çpermute (flipP (Perm n xs)) [0..n-1] = permute (Perm n xs) (downFrom n)äCan be use to turn a permutation from (de Bruijn) levels to levels to one from levels to indices.See ìí.€ Agda expandP i n À in the domain of À replace the ith element by n elements.� AgdaþStable topologic sort. The first argument decides whether its first argument is an immediate parent to its second argument.èAgdaPerform the dropping.éAgda Drop more.êAgdaPick up dropped stuff.çêéèëíîìïðñôóòõö÷øùúûüýþÿ€ � ‚ ñôóòõöïð÷øùúûüýþÿ€ � ‚ ëíîìçêéè Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê©— AgdaLists of length åD2.™ Agda Safe. O(1).š Agda Safe. O(1).› Agda Safe. O(n).œ Agda Safe. O(1).� Agda Safe. O(1).ž Agda Safe. O(1).Ÿ AgdaUnsafe! — ˜ ™ š › œ � ž Ÿ   — ˜ ™ š › œ � ž Ÿ   > Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêŸ Ì AgdaÊDenotational equality for floating point numbers, checks bitwise equality.ÕNOTE: Denotational equality distinguishes NaNs, so its results may vary depending on the architecture and compilation flags. Unfortunately, this is a problem with floating-point numbers in general.Í Agda²I guess "denotational orderings" are now a thing? The point is that we need an Ord instance which provides a total ordering, and is consistent with the denotational equality.NOTE: The ordering induced via Ë * is total, and is consistent with Ì ý. However, it is *deeply* unintuitive. For one, it considers all negative numbers to be larger than positive numbers.Î AgdaÀReturn Just x if it's a finite number, otherwise return Nothing.Ï AgdaRemove suffix .0$ from printed floating point number.Ð Agda$Decode a Double to an integer ratio.Ñ Agda$Encode an integer ratio as a double.Ò Agda�Decode a Double to its mantissa and its exponent, normalised such that the mantissa is the smallest possible number without loss of accuracy.Ó AgdaÅChecks whether or not the Double is within a safe range of operation.…Agda‹The smallest representable mantissa. Simultaneously, the smallest integer which can be represented as a Double without loss of precision.†Agda‰The largest representable mantissa. Simultaneously, the largest integer which can be represented as a Double without loss of precision.‡Agda#The largest representable exponent.ˆAgda$The smallest representable exponent.Ô Agda.Encode a mantissa and an exponent as a Double.+ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô +Î Ä Å Æ Ç Ó ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã È É Ê Ì Í Ë Ð Ñ Ò Ô Ï  Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÕ AgdaWhile ‰- is for rendering data in Haskell syntax, Õ Ì is for displaying data to the world, i.e., the user and the environment.ÂAtomic data has no inner document structure, so just implement Ö  as pretty a = text $ ... a ....Ù AgdaUse instead of ƒ when printing to world.â Agda1Separate, but only if both separees are not null.ã Agda+Comma separated list, without the brackets.ä AgdaPretty print a set.å Agda!Pretty print an association list.æ Agda"Pretty print a single association.ç AgdaApply � to s if boolean is true.è AgdaOnly wrap in parens if not ßé Agdaalign max rows lays out the elements of rowsð in two columns, with the second components aligned. The alignment column of the second components is at most max2 characters to the right of the left-most column.Precondition: max > 0.ê Agda?Handles strings with newlines properly (preserving indentation)ë Agda a  ? b = hang a 2 bì Agda pshow = text . showî AgdaUsed for with-like  telescopesÎstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜š™Ÿ›œž�¤ ¡£¢¥Õ Ø Ö × Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ÎÕ Ø Ö × Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î stuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜š™Ÿ›œž�¤ ¡£¢¥ë 6? Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê }� Agda"CPU time in pico (10^-12) seconds.ƒ Agda Timestamps.„ AgdaThe current time.‡ AgdaÏMeasure the time of a computation. Of course, does not work with exceptions.ˆ Agda(Print CPU time in milli (10^-3) seconds.� ‚ ƒ „ … † ‡ ƒ „ † ‡ � ‚ … @ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê*1ŠAgdaíThe extended parser type computes one top-level document, plus one document per encountered memoisation key.é~õ is used to mark that a given memoisation key has been seen, but that no corresponding document has yet been stored.‘ Agda(Documents paired with precedence levels.’ AgdaÀAn extended parser type, with some support for printing parsers.‹AgdaInvariant: If the boolean is â~, then the result must be Œ something, and if the boolean is �, then the result must be Ž something.” AgdaRuns the parser.• Agda&Tries to print the parser, or returns �Æ, depending on the implementation. This function might not terminate.– AgdaÏParses a token satisfying the given predicate. The computed value is returned.— AgdaÛUses the given function to modify the printed representation (if any) of the given parser.˜ AgdaMemoises the given parser./Every memoised parser must be annotated with a uniqueÊ key. (Parametrised parsers must use distinct keys for distinct inputs.)™ AgdaÁMemoises the given parser, but only if printing, not if parsing./Every memoised parser must be annotated with a uniqueÊ key. (Parametrised parsers must use distinct keys for distinct inputs.)š AgdaThe parser type.The parameters of the type Parser k r tok a have the following meanings: kType used for memoisation keys.rÔThe type of memoised values. (Yes, all memoised values have to have the same type.)tokThe token type.aThe result type.�AgdaMemoised values.‘AgdaContinuations.’AgdaState monad used by the parser.“Agda Positions.› AgdaõUses the given document as the printed representation of the given parser. The document's precedence is taken to be £ .œ Agda.Parses a token satisfying the given predicate.� AgdaParses a single token.ž AgdaParses a given token.Ÿ AgdaPrecedence of >>=.  AgdaPrecedence of  |.¡ AgdaPrecedence of  *.¢ AgdaPrecedence of ÆE and +.£ AgdaPrecedence of atoms.”AgdaA smart constructor.•AgdaExtracts the parser.–AgdaExtracts the documents.—AgdaA helper function.˜Agda Pretty-prints a memoisation key.™AgdaA helper function.‘ ’ “ ” — – ˜ ™ • š › œ � ž Ÿ   ¡ ¢ £ “ ” — – ˜ ™ • œ � ž › ‘ Ÿ   ¡ ¢ £ š ’ î Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê*Õ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê+-!NOb[\]^_`acdeÒÓÔÕÖרÙÚÛÜÝÞßàáâã!NOb[\]^_`acdeÒÓÔÕÖרÙÚÛÜÝÞßàáâãA Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê1\® Agda4The flexibe variables contained in a pice of syntax.± Agda2The rigid variables contained in a pice of syntax.´ Agda)Make offsets non-negative by rounding up.¶ AgdaOffsets + n must be non-negative¹ AgdaExecuting a substitution.» AgdaÀPartial substitution from flexible variables to size expression.¾ Agda*Type of solution wanted for each flexible.¿ Agda,Assigning a polarity to a flexible variable.Á Agda)What type of solution are we looking for?Å Agda= 0.à AgdaDefault polarity is  .â Agda?Returns an error message if we have a contradictory constraint.ã AgdaÌ  acts as â~, Ë  as �.ä Agda Interpret Ê  as relation on Ü .î AgdaAdd offset to size expression.ò AgdaComparison operator is ordered Ë  < Ì .7® ° ¯ ± ³ ² ´ µ ¶ · ¸ ¹ º » ½ ¼ ¾ ¿ À Á Ã Â Ä Å É Ç È Æ Ê Ì Ë Í Î Ó Õ Ô Ñ Ò Ð Ï Ö Ø × Ù Û Ú Ü Ý Þ ß à á â ã ä 7Ü Ý Ù Û Ú Ö Ø × Î Ó Õ Ô Ñ Ò Ð Ï Í Ê Ì Ë Å É Ç È Æ Ä Á à  ¿ À ¾ Þ ß à » ½ ¼ á ¹ º ¸ â ã ä ¶ · ´ µ ± ³ ² ® ° ¯ B Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê5� ¡ AgdaSimple Emacs Lisp expressions.¢ AgdaAtom.¤ AgdaList.¦ AgdaFormats a response command. Replaces 'n'= with spaces to ensure that each command is a single line.§ Agda-Writes a response command to standard output.šAgda0displayInBuffer buffername append header content displays content (with header header%) in some suitable way in the buffer  buffername. If append is Trueè, then the content is appended to previous content (if any), otherwise any previous content is deleted.›Agda$The name of the running info buffer.© AgdaClear the running info buffer.ª AgdaClear the warning buffer« AgdaÁDisplay running information about what the type-checker is up to. ¡ ¥ ¢ ¤ £ ¦ § ¨ © ª « ¡ ¥ ¢ ¤ £ ¦ § ¨ © ª «  Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê:È® Agda Loop while we have an exception.¯ AgdaMonadic version of œ$ with a different argument ordering.° Agda'Either _ b' is a functor.± Agda'Either a' is a functor.² Agda� is bitraversable. Note: From base >= 4.10.0.0 already present in ïð.³ Agda Analogue of ñò.´ Agda Analogue of ñò.µ Agda Analogue of ,ó.¶ Agda Analogue of ,ó.· AgdaSafe projection from Œ. 8maybeLeft (Left a) = Just a maybeLeft Right{} = Nothing¸ AgdaSafe projection from Ž.  x) xs) else Nothing » Agda)Groups a list into alternating chunks of Œ and Ž values¼ AgdaConvert ç~ to � e, given an error e for the é~ case.½ Agda Swap tags Œ and Ž.PQ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ® ¯ ° ± ² QP³ ´ µ ¶ · ¸ ¹ º » ¼ ½  Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêD]¾ Agda Binary bind.Á AgdaMonadic guard. AgdaMonadic if-then-else.à Agda ifNotM mc = ifM (not  $ mc)Ä AgdaLazy monadic conjunction.Ç AgdaLazy monadic disjunction.Ê AgdaLazy monadic disjunction with Either> truth values. Returns the last error message if all fail.Ë AgdaèLazy monadic disjunction with accumulation of errors in a monoid. Errors are discarded if we succeed.Ì AgdaGeneralized version of 8traverse_ :: Applicative m => (a -> m ()) -> [a] -> m ()î Executes effects and collects results in left-to-right order. Works best with left-associative monoids.!Note that there is an alternative !mapM' f t = foldr mappend mempty  $ mapM f t‡that collects results in right-to-left order (effects still left-to-right). It might be preferable for right associative monoids.Í AgdaGeneralized version of 3for_ :: Applicative m => [a] -> (a -> m ()) -> m ()Ò AgdaA monadic version of å~ :: (a -> Maybe b) -> [a] -> [b].Ó Agda A version of Ò ' with a computation for the input list.Ô AgdaThe for version of Ò .Õ AgdaThe for version of Ó .Ö AgdaA monadic version of ž :: (a -> Bool) -> [a] -> [a].× AgdaA monadic version of  dropWhileEnd :: (a -> Bool) -> [a] -> m [a]:. Effects happen starting at the end of the list until p becomes false.Ø AgdaA `monadic' version of @ partition# :: (a -> Bool) -> [a] -> ([a],[a])Ù Agda Translates ç~ to X.Ú AgdaGeneralises the ï~& function from lists to an arbitrary X.Û Agda"Branch over elements of a monadic Â~ data structure.Ü AgdaFinally for the ErrorÆ class. Errors in the finally part take precedence over prior errors.Ý AgdaTry a computation, return é~ if an Error occurs.Þ Agda1Run a command, catch the exception and return it.ß AgdaLike Ÿ-, but raise given error when condition fails.à Agda;Bracket without failure. Typically used to preserve state.á Agda Restore state after computation.à AgdaAcquires resource. Run first.AgdaReleases resource. Run last.Agda Computes result. Run in-between.,YKSXWVZ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á ,¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á ZKXWVSYC Safe-Inferred#!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêIâ Agda.Lazy monadic computation of a list of results.å AgdaBoilerplate function to lift   through the â  transformer.æ Agda Inverse to å .ç AgdaThe empty lazy list.è AgdaConsing a value to a lazy list.é AgdaSingleton lazy list.ê Agda Case distinction over lazy list.ë Agda+Folding a lazy list, effects left-to-right.ì AgdaÄLazy monadic disjunction of lazy monadic list, effects left-to-rightí AgdaÄLazy monadic conjunction of lazy monadic list, effects left-to-rightî Agda8Force all values in the lazy list, effects left-to-rightï AgdaThe join operation of the ListT m monad.ð AgdaWe can `run' a computation of a â  as it is monadic itself.ñ Agda Monadic cons.ò AgdaMonadic singleton.ó Agda Extending a monadic function to â .ô Agda!Alternative implementation using ë .õ Agda Change from one monad to anotherâ ä ã å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ â ä ã å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ D Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêMÅ‚ Agda%Paths which are known to be absolute.Note that the � and ò~Ó instances do not check if different paths point to the same files or directories.„ Agda Extract the ‚  to be used as ¡.… Agda Constructs ‚ s.2Precondition: The path must be absolute and valid.† AgdaMakes the path absolute.This function may raise an __IMPOSSIBLE__ error if ¢" does not return an absolute path.‡ Agda!Resolve symlinks etc. Preserves ˆ .ˆ AgdaÐTries to establish if the two file paths point to the same file (or directory).‰ AgdaCase-sensitive £ for Windows.÷This is case-sensitive only on the file name part, not on the directory part. (Ideally, path components coming from module name components should be checked case-sensitively and the other path components should be checked case insensitively.)Š AgdaõTrue if the first file is newer than the second file. If a file doesn't exist it is considered to be infinitely old. ‚ ƒ „ … † ‡ ˆ ‰ Š ‚ ƒ „ … † ‡ ˆ ‰ Š E Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêN • AgdaHashes a piece of ¤.— Agda-Hashing a module name for unique identifiers.’ “ ” • – — ’ “ ” • – — F Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêT%˜ Agda'Monad with access to benchmarking data.� AgdaÅWe need to be able to terminate benchmarking in case of an exception.ž AgdañBenchmark structure is a trie, mapping accounts (phases and subphases) to CPU time spent on their performance.  AgdaAre we benchmarking at all?¡ Agda!What are we billing to currently?¢ Agda/The accounts and their accumulated timing bill.¨ Agda3Record when we started billing the current account.© Agda(Account we can bill computation time to.« AgdaSemantic editor combinator.¬ AgdaSemantic editor combinator.­ AgdaSemantic editor combinator.® Agda"Add to specified CPU time account.° AgdaTurn benchmarking on/off.± AgdaãBill current account with time up to now. Switch to new account. Return old account (if any).² Agda.Resets the account and the timing information.³ AgdaæBill a computation to a specific account. Works even if the computation is aborted by an exception.´ Agda;Bill a CPS function to an account. Can't handle exceptions.µ Agda.Bill a pure computation to a specific account.¸ Agda2Print benchmark as three-column table with totals.¹ Agda$Initial benchmark structure (empty).± AgdaMaybe new account.AgdaMaybe old account.˜ œ › š � ™ ž ¢ ¡   Ÿ £ ¦ ¤ ¥ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ © ¨ § £ ¦ ¤ ¥ ª ž ¢ ¡   Ÿ « ¬ ­ ® ˜ œ › š � ™ ¯ ° ± ² ³ ´ µ G Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêg!Á AgdaFinite maps from k to v!, with a way to quickly get from v to k for certain values of type v (those for which Ç  is defined).&Every value of this type must satisfy É .Å Agda0Partial injections from a type to some tag type.The idea is that Ç ( should be injective on its domain: if Ç  x = Ç  y = è~ i, then x = yÔ. However, this property does not need to hold globally. The preconditions of the Á 3 operations below specify for which sets of values Ç  must be injective.È AgdaChecks if the function Ç Ò is injective for the values in the given list for which the function is defined.É AgdaThe invariant for Á .Ê AgdaLookup. O(log n).Ë AgdaInverse lookup. O(log n).Ì AgdaSingleton map. O(1).Í Agda0Insertion. Overwrites existing values. O(log n).Precondition: See Î .Î AgdaThe precondition for Í  k v m: If v has a Ç  (Ç  v àD é~), then m must not contain any mapping k' ¦C v' for which k àD k' and Ç  v = Ç  v'.Ï AgdaËModifies the value at the given position, if any. If the function returns é~&, then the value is removed. O(log n).The precondition for Ï  f k m is that, if the value v is inserted into m, and Ç  v% is defined, then no key other than k may map to a value v' for which Ç  v' = Ç  v.Ð AgdaËModifies the value at the given position, if any. If the function returns é~&, then the value is removed. O(log n).Precondition: See Ñ .Ñ AgdaThe precondition for Ð  f k m is that, if the value v is inserted into m, and Ç  v% is defined, then no key other than k may map to a value v' for which Ç  v' = Ç  v.Ò AgdaËModifies the value at the given position, if any. If the function returns é~&, then the value is removed. O(log n).Precondition: See Ó .Ó AgdaThe precondition for Ò  f k m is that, if the value v is inserted into m, and Ç  v% is defined, then no key other than k may map to a value v' for which Ç  v' = Ç  v.Ô Agda;Modifies the value at the given position, if any. O(log n).Precondition: See Õ .Õ AgdaThe precondition for Ô  f k m is that, if the value v is inserted into m, and Ç  v% is defined, then no key other than k may map to a value v' for which Ç  v' = Ç  v.Ö AgdaÔInserts a binding into the map. If a binding for the key already exists, then the value obtained by applying the function to the key, the new value and the old value is inserted, and the old value is returned.Precondition: See × .× AgdaThe precondition for Ö  f k v m is that, if the value v' is inserted into m, and Ç  v'% is defined, then no key other than k may map to a value v'' for which Ç  v'' = Ç  v'.Ø AgdaáChanges all the values using the given function, which is also given access to keys. O(n log n).Precondition: See Ù .Ù AgdaThe precondition for Ø  f m!: For any two distinct mappings k�A ¦C v�A, k‚A ¦C v‚A in m for which the tags of f k�A v�A and f k‚A v‚A are defined the values of f must be distinct (f k�A v�A àD f k‚A v‚A). Furthermore Ç  must be injective for { f k v | (k, v) ˆD m }.Ú AgdaÛChanges all the values using the given function, which is also given access to keys. O(n).Precondition: See Û ". Note that tags must not change.Û AgdaThe precondition for Ú  f m is that, if m maps k to v, then Ç  (f k v) == Ç  v.Ü Agda0Left-biased union. For the time complexity, see ¥.Precondition: See Ý .Þ AgdaÝConversion from lists of pairs. Later entries take precedence over earlier ones. O(n log n).Precondition: See ß .à AgdaÆConversion to lists of pairs, with the keys in ascending order. O(n).á Agda#The keys, in ascending order. O(n).â Agda>The values, ordered according to the corresponding keys. O(n).ã AgdaèConversion from two lists that contain distinct keys/tags, with the keys/tags in ascending order. O(n).Precondition: See ä .å AgdaGenerates input suitable for ã . O(n).%Á Ä Ã Â Å Ç Æ È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å %Å Ç Æ È Á Ä Ã Â É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å H Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê~8ì Agda=Killing the range of an object sets all range information to © .î Agda;If it is also possible to set the range, this is the class.Instances should satisfy ñ  (ï  r x) == r.ð Agda5Things that have a range are instances of this class.ò Agda1Wrapper to indicate that range should be printed.õ AgdaŽA range is a file name, plus a sequence of intervals, assumed to point to the given file. The intervals should be consecutive and separated.1Note the invariant which ranges have to satisfy: � .ú AgdaAn interval. The iEnd* position is not included in the interval.4Note the invariant which intervals have to satisfy: ˆ .� Agda Represents a point in the input.If two positions have the same ƒ  and „ ï components, then the final two components should be the same as well, but since this can be hard to enforce the program should not rely too much on the last two components; they are mainly there to improve error messages for the user.4Note the invariant which positions have to satisfy: ‡ .ƒ AgdaFile.„ AgdaPosition, counting from 1.… AgdaLine number, counting from 1.† AgdaColumn number, counting from 1.‰ Agda Sets the ƒ  components of the interval.Š Agda Gets the ƒ Ð component of the interval. Because of the invariant, they are both the same.‹ Agda6Converts a file name and two positions to an interval.Œ AgdaThe length of an interval.� AgdaÔThe intervals that make up the range. The intervals are consecutive and separated (� ).Ž Agda8Turns a file name plus a list of intervals into a range.Precondition: � .� AgdaýAre the intervals consecutive and separated, do they all point to the same file, and do they satisfy the interval invariant?� AgdaRange invariant.‘ Agda"The file the range is pointing to.’ Agda%Conflate a range to its right margin.“ Agda*Remove ranges in keys and values of a map.§ Agda;The first position in a file: position 1, line 1, column 1.¨ Agda;The first position in a file: position 1, line 1, column 1.© Agda$Ranges between two unknown positionsª Agda?Advance the position by one character. A newline character ('n'þ) moves the position to the first character in the next line. Any other character moves the position to the next column.« Agda!Advance the position by a string.  movePosByString = foldl' movePos¬ Agda%Backup the position by one character.(Precondition: The character must not be 'n'.­ Agda2Converts a file name and two positions to a range.® Agda"Converts two positions to a range.;Precondition: The positions have to point to the same file.¯ Agda0Converts a file name and an interval to a range.° Agda-Converts a range to an interval, if possible.± AgdaçConverts a range to an interval, if possible. Note that the information about the source file is lost.² Agda?Returns the shortest continuous range containing the given one.³ Agda0Removes gaps between intervals on the same line.´ Agda*The initial position in the range, if any.µ Agda*The initial position in the range, if any.¶ Agda;The position after the final position in the range, if any.· Agda;The position after the final position in the range, if any.¸ Agda4Finds the least interval which covers the arguments.8Precondition: The intervals must point to the same file.¹ AgdafuseRanges r r' unions the ranges r and r'.!Meaning it finds the least range r0 that covers r and r'.ÃPrecondition: The ranges must point to the same file (or be empty).º AgdaÄPrecondition: The ranges must point to the same file (or be empty).» Agda beginningOf rÎ is an empty range (a single, empty interval) positioned at the beginning of r. If r" does not have a beginning, then ©  is returned.¼ AgdabeginningOfFile rà is an empty range (a single, empty interval) at the beginning of rÜ's starting position's file. If there is no such position, then an empty range is returned.½ Agdax `withRangeOf` y sets the range of x to the range of y.¾ Agda*Interleaves two streams of ranged elementsªIt will report the conflicts as a list of conflicting pairs. In case of conflict, the element with the earliest start position is placed first. In case of a tie, the element with the earliest ending position is placed first. If both tie, the element from the first list is placed first.¿ AgdaTo get  õ #, we need a semigroup instance for ‚ .Ð AgdaÚPrecondition: The ranges of the tuple elements must point to the same file (or be empty).Ñ AgdaÚPrecondition: The ranges of the tuple elements must point to the same file (or be empty).Ò AgdaÚPrecondition: The ranges of the tuple elements must point to the same file (or be empty).Ó AgdaÚPrecondition: The ranges of the tuple elements must point to the same file (or be empty).Ô AgdaÚPrecondition: The ranges of the tuple elements must point to the same file (or be empty).Õ AgdaÚPrecondition: The ranges of the tuple elements must point to the same file (or be empty).Ø AgdaÙPrecondition: The ranges of the list elements must point to the same file (or be empty).Ù AgdaÙPrecondition: The ranges of the list elements must point to the same file (or be empty).í AgdaOverlaps with  KillRange [a].Ôë ì í î ï ð ñ ò ó ô õ ÷ ö ø ù ú û ý ü þ ÿ € � ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ � Ž � � ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ Ôÿ þ � ‚ ƒ „ … † € ‡ ¨ ª « ¬ § ù ø ú û ý ü ˆ ‹ Š Œ ¸ ‰ ô õ ÷ ö � � Ž ¯ � ‘ ’ © ® ­ µ ´ · ¶ ± ° ² ³ ò ó ð ñ î ï ì í ë “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ ½ º ¹ » ¼ ¾ I Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêȸó‘AgdaPart of a Notation’Agda�Argument is the position of the hole (with binding) where the binding should occur. First range is the rhs range and second is the binder.“Agda+Argument is where the expression should go.”Agda"An underscore in binding position.–AgdaNotation as provided by the syntax declaration.œAgdaRewriteEqn' qn p e represents the rewrite and irrefutable with clauses of the LHS. qnÖ stands for the QName of the auxiliary function generated to implement the feature nm/ is the type of names for pattern variables p is the type of patterns e is the type of expressions�Agda  rewrite ežAgda with p <- e in eqŸAgda!Coverage check? (Default is yes).¢Agda!Universe check? (Default is yes).¥Agda#Positivity check? (Default = True).¨Agda0Termination check? (Default = TerminationCheck).©AgdaRun the termination checker.ªAgda#Skip termination checking (unsafe).«AgdaTreat as non-terminating.¬Agda/Treat as terminating (unsafe). Same effect as ª.­Agda2Skip termination checking but use measure instead.°AgdaRename from this name.±Agda#To this one. Must be same kind as °.²AgdaNew fixity of ± (optional).³AgdaÃThe range of the "to" keyword. Retained for highlighting purposes.´Agda3An imported name can be a module or a defined name.µAgdaImported module name of type m.¶AgdaImported name of type n.·AgdaThe using clause of import directive.¸AgdaNo using clause given.¹Agdausing the specified names.¼AgdaÙThe things you are allowed to say when you shuffle names between name spaces (i.e. in import,  namespace, or open declarations).ÂAgda Only for open3. Exports the opened names from the current module.ÇAgdaçThe notation is handled as the fixity in the renamer. Hence, they are grouped together in this type.ËAgdaàRange of the name in the fixity declaration (used for correct highlighting, see issue #2140).ÌAgdaFixity of operators.ÎAgda&Range of the whole fixity declaration.ÑAgdaAssociativity.ÖAgdaNo fixity declared.×Agda$Fixity level declared as the number.ØAgda Precedence levels for operators.ÜAgdaÀPlaceholders are used to represent the underscores in a section.ÞAgdaÙThe second argument is used only (but not always) for name parts other than underscores.ßAgda4The position of a name part or underscore in a name.àAgda;The following underscore is at the beginning of the name: _foo.áAgda8The following underscore is in the middle of the name: foo_bar.âAgda4The following underscore is at the end of the name: foo_.ãAgdaéA "problem" consists of a set of constraints and the same constraint can be part of multiple problems.çAgda4A meta variable identifier is just a natural number.êAgda×The unique identifier of a name. Second argument is the top-level module identifier.îAgdaIs this a macro definition?ñAgda0Is this definition eligible for instance search?òAgda Range of the instance keyword.ôAgda"Is any element of a collection an ù.øAgdaAbstract or concrete.ûAgdaAccess modifier.üAgda Store the ¼ð of the private block that lead to this qualifier. This is needed for more faithful printing of declarations.þAgdaÀFunctions can be defined in both infix and prefix style. See kô.�Agda"Where does a projection come from?‚AgdaUser wrote a prefix projection.ƒAgda User wrote a postfix projection.„Agda'Projection was generated by the system.…AgdaWhere does the ConP or Con come from?†Agda8Inserted by system or expanded from an implicit pattern.‡Agda#User wrote a constructor (pattern).ˆAgdaUser wrote a record (pattern).‰Agda(Generated by interactive case splitting.ŠAgdaString with range info.‹AgdaA RawName is some sort of string.ŒAgdaThing with range info.�AgdaNames in binders and arguments.‘AgdaOnly � arguments can have names.’AgdaAccessor/editor for the ™ component.“AgdaThe type of the name•AgdaStandard argument names.–AgdaStandard naming.—Agda&Something potentially carrying a name.¦Agda4A function argument can be hidden and/or irrelevant.¬AgdaÚSometimes we want a different kind of binder/pi-type, without it supporting any of the Modality interface.­AgdaA lens to access the ±: attribute in data structures. Minimal implementation: getFreeVariables and mapFreeVariables or  LensArgInfo.´AgdaA lens to access the ¼: attribute in data structures. Minimal implementation:  getOrigin and  mapOrigin or  LensArgInfo.¸AgdaDecorating something with ¼ information.¼AgdaOrigin of arguments.½Agda/From the source file / user input. (Preserve!)¾AgdaE.g. inserted hidden arguments.¿Agda%Produced by the reflection machinery.ÀAgda&Produced by an interactive case split.ÁAgdaÛNamed application produced to represent a substitution. E.g. "?0 (x = n)" instead of "?0 n"ÂAgdaA lens to access the Æ: attribute in data structures. Minimal implementation:  getCohesion and  mapCohesion or  LensModality.ÆAgdaÎCohesion modalities see "Brouwer's fixed-point theorem in real-cohesive homotopy type theory" (arXiv:1509.07584) types are now given an additional topological layer which the modalities interact with.ÇAgda=same points, discrete topology, idempotent comonad, box-like.ÈAgdaåidentity modality. | Sharp -- ^ same points, codiscrete topology, idempotent monad, diamond-like.ÉAgdaÁsingle point space, artificially added for Flat left-composition.ÐAgdaÚIn the future there might be different kinds of them. For now we assume lock weakening.ÕAgdaÄWe have a tuple of annotations, which might not be fully orthogonal.×AgdaøFitch-style dependent right adjoints. See Modal Dependent Type Theory and Dependent Right Adjoints, arXiv:1804.05236.ØAgdaA lens to access the Ü: attribute in data structures. Minimal implementation:  getRelevance and  mapRelevance or  LensModality.ÜAgda:A function argument can be relevant or irrelevant. See Agda.TypeChecking.Irrelevance.ÝAgda4The argument is (possibly) relevant at compile-time.ÞAgda—The argument may never flow into evaluation position. Therefore, it is irrelevant at run-time. It is treated relevantly during equality checking.ßAgda3The argument is irrelevant at compile- and runtime.àAgdaA special case of ç: erased or not.çAgdaQuantity for linearity.íA quantity is a set of natural numbers, indicating possible semantic uses of a variable. A singleton set {n}= requires that the corresponding variable is used exactly n times.èAgda Zero uses {0}, erased at runtime.éAgda Linear use {1}ó (could be updated destructively). Mostly TODO (needs postponable constraints between quantities to compute uses).êAgdaUnrestricted use •B.ëAgda Origin of ê.ìAgdaUser wrote nothing.íAgdaUser wrote "@É".îAgdaUser wrote "@plenty".ïAgda Origin of é.ðAgdaUser wrote nothing.ñAgdaUser wrote "@1".òAgdaUser wrote "@linear".óAgda Origin of è.ôAgdaUser wrote nothing.õAgdaUser wrote "@0".öAgdaUser wrote "@erased".ûAgda‚We have a tuple of modalities, which might not be fully orthogonal. For instance, irrelevant stuff is also run-time irrelevant.ýAgda4Legacy irrelevance. See Pfenning, LiCS 2001; AbelVezzosiWinterhalter, ICFP 2017.þAgda­Cardinality / runtime erasure. See Conor McBride, I got plenty o' nutting, Wadlerfest 2016. See Bob Atkey, Syntax and Semantics of Quantitative Type Theory, LiCS 2018.ÿAgda­Cohesion/what was in Agda-flat. see "Brouwer's fixed-point theorem in real-cohesive homotopy type theory" (arXiv:1509.07584) Currently only the comonad is implemented.€AgdaÐType wrapper to indicate composition or multiplicative monoid/semigroup context.‚Agda;Type wrapper to indicate additive monoid/semigroup context.„AgdaA lens to access the Œ: attribute in data structures. Minimal implementation:  getHiding and  mapHiding or  LensArgInfo.ˆAgdaDecorating something with Œ information.“Agda Inductive < Coinductive–Agda0Can we construct a record by copattern matching?˜Agda/Can we pattern match on the record constructor?šAgda=For a record without eta, which type of matching do we allow?›Agda$Can match on the record constructor.œAgda5Can copattern match using the projections. (Default.)žAgdaÁPattern and copattern matching is allowed in the presence of eta.ÑIn the absence of eta, we have to choose whether we want to allow matching on the constructor or copattern matching with the projections. Having both leads to breakage of subject reduction (issue #4560).ŸAgda%Does a record come with eta-equality?¨AgdaAgda variants.Only some variants are tracked.¬AgdaVariants of Cubical Agda.µAgda4Used to specify whether something should be delayed.»AgdaMonoidal composition of Œ information in some data.¼Agda� arguments are visible.½AgdaŽ and � arguments are  notVisible.¾Agda� arguments are hidden.ÅAgdaIgnores �.ÆAgdam Æ m' means that an m can be used where ever an m' is required.ÈAgda(Multiplicative monoid (standard monoid).ÉAgdaƒCompose with modality flag from the left. This function is e.g. used to update the modality information on pattern variables a- after a match against something of modality q.ÊAgdainverseComposeModality r x returns the least modality y such that forall x, y we have .x `moreUsableModality` (r `composeModality` y) iff 5(r `inverseComposeModality` x) `moreUsableModality` y (Galois connection).ËAgdaLeft division by a û3. Used e.g. to modify context when going into a m argument.3Note that this function does not change quantities.ÌAgdaû# forms a pointwise additive monoid.ÍAgdaIdentity under additionÎAgdaIdentity under compositionÏAgda"Absorptive element under addition.ÐAgda‹The default Modality Beware that this is neither the additive unit nor the unit under composition, because the default quantity is É.ÑAgdaEquality ignoring origin.ÞAgdaEquality ignoring origin.ßAgdaç. forms an additive monoid with zero Quantity0.àAgdaIdentity element under additionáAgdaìAbsorptive element! This differs from Relevance and Cohesion whose default is the multiplicative unit.âAgda"Identity element under compositionãAgdaAbsorptive element is É.äAgdam moreUsableQuantity m' means that an m can be used where ever an m' is required.åAgda+Composition of quantities (multiplication).è is dominant. é is neutral.Right-biased for origin.æAgdaƒCompose with quantity flag from the left. This function is e.g. used to update the quantity information on pattern variables a- after a match against something of quantity q.çAgdainverseComposeQuantity r x returns the least quantity y such that forall x, y we have (x `moreQuantity` (r `composeQuantity` y) iff /(r `inverseComposeQuantity` x) `moreQuantity` y (Galois connection).èAgdaLeft division by a ç3. Used e.g. to modify context when going into a q argument.éAgda Check for è.êAgda Check for é.ëAgda Check for ê.ìAgda*Did the user supply a quantity annotation?íAgda9A thing of quantity 0 is unusable, all others are usable.îAgdaThe default value of type à : not erased.ïAgdaà can be embedded into ç.ðAgdaç can be projected onto à.ñAgdaEquality ignoring origin.òAgdaIs the value "erased"?óAgdaComposition of values of type à.à is dominant. â is neutral.Right-biased for the origin.øAgdaInformation ordering. ÀRelevant `moreRelevant` NonStrict `moreRelevant` IrrelevantùAgdaEquality ignoring origin.úAgdausableRelevance rel == False! iff we cannot use a variable of rel.ûAgdaÜ composition. ß is dominant, Ý+ is neutral. Composition coincides with ¦.üAgda…Compose with relevance flag from the left. This function is e.g. used to update the relevance information on pattern variables a! after a match against something rel.ýAgdainverseComposeRelevance r x returns the most irrelevant y such that forall x, y we have )x `moreRelevant` (r `composeRelevance` y) iff 0(r `inverseComposeRelevance` x) `moreRelevant` y (Galois connection).þAgdaLeft division by a Ü3. Used e.g. to modify context when going into a rel argument.ÿAgdaCombine inferred Ü. The unit is ß.€AgdaÜ4 forms a monoid under addition, and even a semiring.�Agda"Identity element under composition‚Agda"Absorptive element under addition.ƒAgda;Default Relevance is the identity element under composition„AgdaËIrrelevant function arguments may appear non-strictly in the codomain type.…AgdaÂApplied when working on types (unless --experimental-irrelevance).ŠAgdaInformation ordering. ÐFlat `moreCohesion` Continuous `moreCohesion` Sharp `moreCohesion` Squash‹AgdaEquality ignoring origin.ŒAgdausableCohesion rel == False! iff we cannot use a variable of rel.�AgdaÆ composition. É is dominant, È is neutral.ŽAgdaƒCompose with cohesion flag from the left. This function is e.g. used to update the cohesion information on pattern variables a- after a match against something of cohesion rel.�AgdainverseComposeCohesion r x returns the least y such that forall x, y we have (x `moreCohesion` (r `composeCohesion` y) iff /(r `inverseComposeCohesion` x) `moreCohesion` y1 (Galois connection). The above law fails for  r = Squash.�AgdaLeft division by a Æ3. Used e.g. to modify context when going into a rel argument.‘AgdaCombine inferred Æ. The unit is É.’AgdaÆ4 forms a monoid under addition, and even a semiring.“AgdaIdentity under composition”Agda"Absorptive element under addition.•Agda:Default Cohesion is the identity element under compositionªAgdaxs `withArgsFrom` args translates xs into a list of žs, using the elements in args to fill in the non-¡ fields.5Precondition: The two lists should have equal length.¬Agda,Equality of argument names of things modulo õ  and ¼.¶Agda,Equality of argument names of things modulo õ  and ¼.·AgdaDoes an argument arg fit the shape dom of the next expected argument?ãThe hiding has to match, and if the argument has a name, it should match the name of the domain.é~ should be ¯, so use as @ fromMaybe  IMPOSSIBLE $ fittingNamedArg arg dom @¸AgdaGet the content of a ‘.»AgdaThe functor instance for ‘8 would be ambiguous, so we give it another name here.½Agda ,setNamedArg a b = updateNamedArg (const b) aÁAgdaThing with no range info.ÄAgda)Prefer user-written over system-inserted.ÆAgdaAn abbreviation: noPlaceholder = Þ ƒ.ÌAgdaDefault is directive is private% (use everything, but do not export).ÍAgdaisDefaultImportDir implies null, but not the other way round.ÑAgdaLike partitionEithers.ëAgda Just for the Œ9 instance. Should never combine different overlapping.ðAgdaŒ, is an idempotent partial monoid, with unit �. Ž and � are incompatible.€AgdaèRight-biased composition, because the left quantity acts as context, and the right one as occurrence.‡AgdaèRight-biased composition, because the left quantity acts as context, and the right one as occurrence.ŽAgdaèRight-biased composition, because the left quantity acts as context, and the right one as occurrence.“AgdaNote that the order is É äD 0,1, more options is smaller.›AgdaÚIn the absense of finite quantities besides 0, É is the unit. Otherwise, 1 is the unit.œAgda+Composition of quantities (multiplication).è is dominant. é is neutral.Right-biased for origin.¨AgdaÝ is the unit under composition.©AgdaÜ% forms a semigroup under composition.ªAgdaMore relevant is smaller.«AgdaMore relevant is smaller.·AgdaÉ is the additive unit.¸AgdaÆ" forms a semigroup under addition.¼Agda Continous is the multiplicative unit.½AgdaÆ% forms a semigroup under composition.¾AgdaFlatter is smaller.¿Agda2Order is given by implication: flatter is smaller.ÉAgdaPointwise additive unit.ÊAgdaPointwise addition.ÎAgdaPointwise composition unit.ÏAgdaPointwise composition.ÐAgdaDominance ordering.“AgdaRanges are not forced.—AgdaIgnores range.˜AgdaIgnores range.™AgdaIgnores range.§Agda Default is ú.¨Agda+Semigroup computes if any of several is an ù.»Agda(Show non-record version of this newtype.ÖAgdaRanges are not forced.ÙAgdaRanges are not forced.ÞAgdanullç for import directives holds when everything is imported unchanged (no names are hidden or renamed).‘•”“’–—›š™˜œž�Ÿ¡ ¢¤£¥§¦¨­¬«ª©®³²±°¯´µ¶·¸¹º»¼ÂÁ¾¿À½ÃÄÅÆÇËÊÉÈÌÐÏÎÍÑÔÓÒÕ×ÖØÙÛÚÜÞÝßáàâãäåæçéèêëìíîðïñóòôõö÷øúùûýüþ€ÿ�„ƒ‚…‰ˆ‡†Š‹ŒŽ���‘’”“•–—™š˜›�œž¡ Ÿ¢¤¥£¦«ª¬©¨§­°¯®±³²´·¶µ¸»º¹¼½¿ÁÀ¾ÂÅÄÃÆÉÈÇÊÍÌËÎÐÏÑÔÓÒÕ×ÖØÛÚÙÜßÞÝàâáãæäåçêèéëîíìïòðñóöõô÷ùúøûÿþýü€�‚ƒ„‡†…ˆ‹Š‰Œ�Ž��’‘“•”–—˜™šœ›�žŸ¡ ¢§¦¥¤£¨ª©«¬®­¯´³²±°µ·¶¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒ¹¸µ·¶¯´³²±°¬®­¨ª©«¢§¦¥¤£ºŸ¡ ž�šœ›˜™–—“•”�’‘Œ�Ž�ˆ‹Š‰„‡†…»¼½¾¿ÀÁÂÃÄÅ‚ƒ€�ûÿþýüÆÇÈÉÊËÌÍÎÏÐÑÒÓÔ÷ùúøÕÖרÙÚÛÜÝóöõôïòðñëîíìçêèéÞßàáâãäåæçèéêëìíãæäåàâáîïðñòóÜßÞÝôØÛÚÙõö÷øùúûüýþÿ€�‚ƒ„…†Õ×Ö‡ÑÔÓÒÎÐψÊÍÌËÆÉÈljÂÅÄÊ‹Œ�Ž��‘’“”•¼½¿ÁÀ¾¸»º¹´·¶µ±³²–—˜™­°¯®š¦«ª¬©¨§¢¤¥£›œ�žŸ ¡¢£¤¥¦§¨ž¡ Ÿ©ª«›�œ—™š˜–•¬­®¯°’”“±²³´µ¶·‘¸¹º»¼½�¾¿ÀŒŽ��Á‹ÂÊ…‰ˆ‡†Ä�„ƒ‚þ€ÿûýüøúùö÷ôõñóòîðïìíÅêëçéèåæãäßáàâÜÞÝÆÙÛÚØÕ×ÖÑÔÓÒÌÐÏÎÍÇÈÇËÊÉÈÉÊËÅÆÃļÂÁ¾¿À½»ºÌÍ·¸¹Î´µ¶ÏÐÑ®³²±°¯¨­¬«ª©¥§¦¢¤£Ÿ¡ œž�—›š™˜–Ò‘•”“’J Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÕ" ¤Agda°When printing we keep track of a stack of precedences in order to be able to decide whether it's safe to leave out parens around lambdas. An empty stack is equivalent to ¦. Invariant: `notElem TopCtx`.¥Agda(Precedence is associated with a context.°Agda*Do we prefer parens around arguments like » x ’C x or not? See ¼.³AgdaDecorating something with Fixity'.¹Agda#Argument context preferring parens.ºAgdaìDo we need to bracket an operator application of the given fixity in a context with the given precedence.»AgdaìDo we need to bracket an operator application of the given fixity in a context with the given precedence.¼Agda›Does a lambda-like thing (lambda, let or pi) need brackets in the given context? A peculiar thing with lambdas is that they don't need brackets in certain right operand contexts. To decide we need to look at the stack of precedences and not just the current precedence. Example: m�A >>= (» x ’C x) >>= m‚A (for _>>=_ left associative).½Agda*Does a function application need brackets?¾Agda*Does a function application need brackets?¿Agda&Does a with application need brackets?ÀAgda$Does a function space need brackets?¤¥¯®­¬«ª©¨§¦°²±³´µ¶·¸¹º»¼½¾¿ÀÁ³´°²±µ¶¥¯®­¬«ª©¨§¦¤·¸¹º»¼½¾¿ÀÁK Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÙu ÖAgdaThe parser monad.ØAgdaMemoisation keys.ßAgdaRuns the parser.àAgdaÏParses a token satisfying the given predicate. The computed value is returned.áAgda.Parses a token satisfying the given predicate.âAgdaõUses the given document as the printed representation of the given parser. The document's precedence is taken to be atomP.ãAgdaMemoises the given parser./Every memoised parser must be annotated with a uniqueÉ key. (Parametrised parsers must use distinct keys for distinct inputs.)äAgdaÀMemoises the given parser, but only if printing, not if parsing./Every memoised parser must be annotated with a uniqueÉ key. (Parametrised parsers must use distinct keys for distinct inputs.)åAgda&Tries to print the parser, or returns �Æ, depending on the implementation. This function might not terminate.ÖרÙÚÛÜÝÞßàáâãäåØÙÚÛÜÝÞ×ÖßàáâãäåL Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÚ*•AgdaArbitrary JS code.,êëìíîñòóðïôõø÷öùúûýüþÿ€�‚“•’���Œ†…„ƒ‡”‘ˆŠ‹‰Ž,‚“•’���Œ†…„ƒ‡”‘ˆŠ‹‰Ž€�þÿûýüùúõø÷öôîñòóðïìíêëM Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêå"'ÄAgda"Entry of an explicit substitution.&An explicit substitution is a list of CAction"Maybe expression": Expression or reference to meta variable.æAgdaAgsy's internal syntax.èAgdaLambda with hiding information.éAgdaTrue8 if possibly dependent (var not known to not occur). False if non-dependent.ëAgda&Absurd lambda with hiding information.ìAgdaUnique identifier of the head.íAgda'This application has been type-checked.îAgdaHead.ïAgda Arguments.ôAgda"Head of application (elimination).ûAgda Dot pattern.ýAgdaConstant definitions.‚AgdaConstant signatures.„AgdaFor debug printing.…AgdaReference to the Agda constant.†AgdaType of constant.‡AgdaConstant definition.ˆAgda7Free vars of the module where the constant is defined..‰AgdaAbstraction with maybe a name.ÎDifferent from Agda, where there is also info whether function is constant.‘AgdaThe concrete instance of the blk parameter in �8. I.e., the information passed to the search control.ŸAgdaÛNat - deffreevars (to make cost of using module parameters correspond to that of hints).¡Agda1Size of typing context in which meta was created.¢Agda!Head normal form of type of meta.£Agda�True if iota steps performed when normalising target type (used to put cost when traversing a definition by construction instantiation).µAgda;Unique identifiers for variable occurrences in unification.ÂAgdaSubstituting for a variable.ÃAgdaFreeVars class and instancesÄAgda Renaming Typeclass and instances�¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÐÏÑÔÓÒÕÙØ×ÖÚÛÞÝÜßàäãâáåæïîíìëéèêçðòñóôõö÷øûúùüýþ�€ÿ‚ˆ‡†…„ƒ‰Š‹�ŒŽ��‘£¢¡ Ÿž�œ›š™˜—–•”“’¤©¨§¦¥ª±°¯®­¬«²´³µ¶·¸¹º»¼½¾¿ÀÁÂÃÄ�µ²´³ª±°¯®­¬«¤©¨§¦¥‘£¢¡ Ÿž�œ›š™˜—–•”“’��Ž‹�Œ‰Š‚ˆ‡†…„ƒýþ�€ÿüøûúù÷ôõö¶·ðòñóæïîíìëéèêç¸åàäãâáßÛÞÝÜÚÕÙØ×ÖÑÔÓÒÎÐÏÍËÌÊÈÉÄÅÆÇùº»ÀÁ¼¾¿½¾¿ÀÁ¼½Âú»Ä¸¹N Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêëqàAgda!Moves A move is composed of a Cost: together with an action computing the refined problem.íAgda univar sub v figures out what the name of v" "outside" of the substitution sub ought to be, if anything.îAgda6List of the variables instantiated by the substitutionïAgdaªNew constructors Taking a step towards a solution consists in picking a constructor and filling in the missing parts with placeholders to be discharged later on.óAgda5New spine of arguments potentially using placeholdersõAgdaNew App?lication node using a new spine of arguments respecting the Hiding annotation÷Agda˜Equality reasoning steps The begin token is accompanied by two steps because it does not make sense to have a derivation any shorter than that.üAgdaëPick the first unused UId amongst the ones you have seen (GA: ??) Defaults to the head of the seen ones.Åàáêéèçæåäãâëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤Åáêéèçæåäãâëìíîàïðñòóôõö÷øùúûüýÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘þ’“”•–—˜™š› œ�žŸ¡¢£¤O Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêí¼Agda)Typechecker drives the solution of metas.-®±°¯²´³µ·¶¸º¹»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚ-¼½¾¿ÀÁÂÃĻůÇÈÉÊ˸º¹ÌÍÎϵ·¶ÐÑÒ²´³®±°¯ÓÔÕÖרÙÚP Safe-Inferred"!$%&'.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêôXÛAgda/Type of a literate preprocessor: Invariants:  f : Processor f pos s /= []f pos s >>= layerContent == sÜAgdaA list of contiguous layers.ÝAgda9A sequence of characters in a file playing the same role.âAgda Role of a character in the file.§Agda7Annotates a tokenized string with position information.èAgdaÛList of valid extensions for literate Agda files, and their corresponding preprocessors.ùIf you add new extensions, remember to update test/Utils.hs so that test cases ending in the new extensions are found.éAgdaReturns True& if the role corresponds to Agda code.êAgdaReturns True! if the layer contains Agda code.ëAgdaØBlanks the non-code parts of a given file, preserving positions of characters corresponding to code. This way, there is a direct correspondence between source positions and positions in the processed result.¨Agda6Replaces non-space characters in a string with spaces.©Agda*Check if a character is a blank character.ìAgdaÊShort list of extensions for literate Agda files. For display purposes.ªAgdaØReturns a tuple consisting of the first line of the input, and the rest of the input.«Agda2Canonical decomposition of an empty literate file.¬AgdaäCreate a regular expression that: - Must match the whole string - Works across line boundariesíAgdaPreprocessor for literate TeX.îAgdaPreprocessor for Markdown.ïAgda"Preprocessor for reStructuredText.ðAgda$Preprocessor for Org mode documents.ÛÜÝÞßàáâåäãæçèéêëìíîïðèìçíïîðëæÛÜÝÞßàáâåäãéêQ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêöÁõAgda‹Picking the appropriate set of special characters depending on whether we are allowed to use unicode or have to limit ourselves to ascii.þAgdaËWe want to know whether we are allowed to insert unicode characters or not.­Agda3Are we allowed to use unicode supscript characters?‚AgdaÃReturn the glyph set based on a given (unicode or ascii) glyph mode®Agda/Choose the glyph set based on the unsafe IORef.õö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Šþÿ€�‚ƒ„…†‡ˆ‰Šõö÷øùúûüýR Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê¿(‘Agda+Check whether a name is the empty name "_".“Agda3Method by which to generate fresh unshadowed names.”Agda1Append an integer Unicode subscript: x, x�A, x‚A, ¦@•Agda-Append an integer ASCII counter: x, x1, x2, ¦@ŸAgdaNumber of holes in a ¬$ (i.e., arity of a mixfix-operator).¡AgdaÁTop-level module names. Used in connection with the file system.&Invariant: The list must not be empty.¥AgdaQNameå is a list of namespaces and the name of the constant. For the moment assumes namespaces are just Name�s and not explicitly applied modules. Also assumes namespaces are generative by just using derived equality. We will have to define an equality instance to non-generative namespaces (as well as having some sort of lookup table for namespace names).¦AgdaA.rest.§Agdax.¨Agda›AgdaÂArbitrary string (not enclosed in double quotes), used in pragmas.¼AgdaA misplaced end-comment "-}".ƒ AgdaUnconditional layout keywords.ÛSome keywords introduce layout only in certain circumstances, these are not included here.ï•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½É¾¿ÀÁÂÃÄÅÆÇÈÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€ � ‚ ƒ ï•–—˜™š›œ�žŸ ½É¾¿ÀÁÂÃÄÅÆÇÈÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€ � ‚ ƒ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼] Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê2¼ � AgdaThe  WarningNameå data enumeration is meant to have a one-to-one correspondance to existing warnings in the codebase.°Agda9From user-given directives we compute WarningMode updatesï Agda2Some warnings are errors and cannot be turned off.ò AgdaA  WarningModeÿ has two components: a set of warnings to be displayed and a flag stating whether warnings should be turned into fatal errors.ø AgdaThe defaultWarningModeÙ is a curated set of warnings covering non-fatal errors and disabling style-related onesû AgdawarningModeUpdate str computes the action of str over the current  WarningModeõ: it may reset the set of warnings, add or remove a specific flag or demand that any warning be turned into an errorü AgdaCommon sets of warningsƒ!AgdaìThe flag corresponding to a warning is precisely the name of the constructor minus the trailing underscore.…!Agda warningUsage generated using warningNameDescription±Agda WarningNameÚ descriptions used for generating usage information Leave String empty to skip that name.÷� á à ß » À © ¨ ª Ë � ® Ù Ú Õ Û Ü Ö Ø × Ò Ó Ô Ý ê é Ï Î Ð Ñ í î ± ¼ ° ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § « ¬ ­ ¯ ² ³ ´ µ ¶ · ¸ ¹ º ½ ¾ ¿ Á Â Ã Ä Å Æ Ç È É Ê Ì Í Þ â ã ä å æ ç è ë ì ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ €!�!‚!ƒ!„!…!÷ò ó ô õ ö ÷ ø �!‚!ý þ ÿ €!ù ï ð ñ ú û ü � á à ß » À © ¨ ª Ë � ® Ù Ú Õ Û Ü Ö Ø × Ò Ó Ô Ý ê é Ï Î Ð Ñ í î ± ¼ ° ‘ ’ “ ” • – — ˜ ™ š › œ � ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § « ¬ ­ ¯ ² ³ ´ µ ¶ · ¸ ¹ º ½ ¾ ¿ Á Â Ã Ä Å Æ Ç È É Ê Ì Í Þ â ã ä å æ ç è ë ì „!ƒ!…!^ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêEÕ7’!Agda The result of parsing something.•!AgdaWarnings for parsing.–!Agda,Parse errors that concern a range in a file.—!AgdaUnsupported attribute.˜!AgdaMultiple attributes.™!Agda)The range of the bigger overlapping tokenš!Agda,Parse errors: what you get if parsing fails.›!Agda4Errors that arise at a specific position in the fileœ!Agda,Parse errors that concern a range in a file.�!Agda'Parse errors that concern a whole file.Ÿ!Agda%The file in which the error occurred. !AgdaWhere the error occurred.¡!AgdaThe remaining input.¢!AgdaThe previous token.£!Agda*Hopefully an explanation of what happened.¤!Agda)The range of the bigger overlapping token¥!Agda"The file which the error concerns.¨!Agda Parser flags.ª!Agda/Should comment tokens be returned by the lexer?«!Agda=Status of a layout column (see #1145). A layout column is ¬!Ë until we encounter a new line. This allows stacking of layout keywords. Inside a  LayoutContext the sequence of ­!Ë columns needs to be strictly increasing. 'Tentative columns between ­!3 columns need to be strictly increasing as well.¬!Agda÷The token defining the layout column was on the same line as the layout keyword and we have not seen a new line yet.­!AgdaùWe have seen a new line since the layout keyword and the layout column has not been superseded by a smaller column.®!AgdaA (layout) column.¯!Agda†We need to keep track of the context to do layout. The context specifies the indentation columns of the open layout blocks. See Agda.Syntax.Parser.Layout for more informaton.°!AgdaLayout at specified ®!, introduced by ½.±!AgdaThe stack of layout blocks..When we encounter a layout keyword, we push a ¬! block with noColumnÆ. This is replaced by aproper column once we reach the next token.²!Agda:For context sensitive lexing alex provides what is called  start codesð in the Alex documentation. It is really an integer representing the state of the lexer, so we call it LexState instead.³!AgdaÒThe parser state. Contains everything the parser and the lexer could ever need.¶!Agda"position at current input location·!Agdaposition of last token¸!Agdathe current input¹!Agdathe character before the inputº!Agdathe previous token»!Agdathe stack of layout blocks¼!Agda%the status of the coming layout block½!Agda'the keyword for the coming layout block¾!AgdaÃthe state of the lexer (states can be nested so we need a stack)¿!Agdaparametrization of the parserÀ!AgdaIn reverse order.Á!AgdaThe parse monad.²AgdaOld interface to parser.Ã!Agda,Throw a parse error at the current position.Ä!AgdaRecords a warning.Å!Agda—Constructs the initial state of the parser. The string argument is the input string, the file path is only there because it's part of a position.Æ!AgdaThe default flags.Ç!Agda.The most general way of parsing a string. The Agda.Syntax.Parser; will define more specialised functions that supply the ¨! and the ²!.È!Agda.The even more general way of parsing a string.É!AgdaåParses a string as if it were the contents of the given file Useful for integrating preprocessors.Í!AgdaÉThe parse interval is between the last position and the current position.Ò!AgdaèFake a parse error at the specified position. Used, for instance, when lexing nested comments, which when failing will always fail at the end of the file. A more informative position is the beginning of the failing comment.Ó!AgdaUse Ò! or Ã! as appropriate.Ô!Agda3Report a parse error at the beginning of the given õ .Õ!AgdaüFor lexical errors we want to report the current position as the site of the error, whereas for parse errors the previous position is the one we're interested in (since this will be the position of the token we just lexed). This function does Ò! the current position.Ù!Agda Return the current layout block.Ü!Agda5When we see a layout keyword, by default we expect a ¬! block.Ë’!“!”!•!–!—!˜!™!š!›!œ!�!ž!Ÿ! !¡!¢!£!¤!¥!¦!§!¨!©!ª!«!¬!­!®!¯!°!±!²!³!´!¿!µ!¶!·!¸!¹!º!»!¼!½!¾!À!Á!Â!Ã!Ä!Å!Æ!Ç!È!É!Ê!Ë!Ì!Í!Î!Ï!Ð!Ñ!Ò!Ó!Ô!Õ!Ö!×!Ø!Ù!Ú!Û!Ü!ËÁ!’!“!”!³!´!¿!µ!¶!·!¸!¹!º!»!¼!½!¾!À!š!›!œ!�!ž!Ÿ! !¡!¢!£!¤!¥!¦!§!•!–!—!˜!™!²!¯!°!±!«!¬!­!®!¨!©!ª!Å!Æ!Ç!È!É!Ê!Ë!Í!Ì!Ñ!Î!Ï!Ð!Ù!Ú!Û!Ö!×!Ø!Ü!Ä!Â!Ã!Ò!Ó!Ô!Õ!_ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêH°³AgdaÚList of Help Topics NOTA BENE: You need to add each new topic together with its name to  allHelpTopicsð!AgdaInterface to the help functionñ!AgdaGeneral usage informationò!Agda)Specialised usage information about TOPICô!AgdaUsage information generationõ!AgdaConversion functions to stringsð!ò!ñ!ó!ô!õ!ð!ò!ñ!ô!õ!ó!` Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêP0þ!AgdaThrows s exceptions, still collects ‹"s.ÿ!Agda Collects …"s and ‹"s.€"AgdaÄCache locations of project configurations and parsed .agda-lib files�"Agda0Collected errors while processing library files.‚"AgdaÇRaised when a library name could not successfully be resolved to an  .agda-lib file.ƒ"Agda1Raised when a library name is defined in several .agda-lib files.„"AgdaGeneric error.‡"AgdaLibrary Warnings.‰"Agda2Raised when a trusted executable can not be found.Š"AgdaÉRaised when a trusted executable does not have the executable permission.�"AgdaName of  libraries file�"AgdaLine number in  libraries file.‘"Agda Library file“"Agda Content of a  .agda-lib file.•"Agda!The symbolic name of the library.–"Agda Path to this  .agda-lib file (not content of the file).—"Agda3Roots where to look for the modules of the library.˜"Agda Dependencies.™"Agda4Default pragma options for all files in the library.š"AgdaŽA file can either belong to a project located at a given root containing one or more .agda-lib files, or be part of the default project.¡"AgdaE.g. ~.agda executables.¢"AgdaáThe executables file might not exist, but we may print its assumed location in error messages.£"AgdaA symbolic executable name.¦"AgdaE.g. ~.agda libraries.§"AgdaßThe libraries file might not exist, but we may print its assumed location in error messages.¨"AgdaA symbolic library name.©"AgdaThe special name "."Ó is used to indicated that the current directory should count as a project root.«"AgdaLenses for AgdaLibFileº"Agda Pretty-print …".=þ!ÿ!€"�"ƒ"‚"„"…"†"‡"Š"‰"ˆ"‹"Œ"�"‘"�"�"Ž"’"“"™"˜"—"–"•"”"š"ž"�"œ"›"Ÿ"¢"¡" "£"¤"§"¦"¥"¨"©"ª"«"¬"­"®"¯"°"±"²"³"´"µ"¶"·"¸"¹"º"=¨"¤"§"¦"¥"£"Ÿ"¢"¡" "©"š"ž"�"œ"›"“"™"˜"—"–"•"”"ª"«"¬"­"®"¯"’"�"‘"�"�"Ž"‹"Œ"‡"Š"‰"ˆ"…"†"°"�"ƒ"‚"„"€"ÿ!þ!±"²"³"´"µ"¶"·"¸"¹"º"a Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê[´AgdaLines with line numbers.µAgdaÊHeader line, like a field name, e.g. "include :". Cannot be indented. String is trimmed.¶Agda"Other line. Must be indented. String is trimmed.·Agda(Library file field format format [sic!].¸AgdaName of the field.¹AgdaIs it optional?ºAgdaContent parser for this field.»AgdaSets parsed content in “" structure.¼AgdaE.g. field name. trimmed.½AgdaE.g. field content. trimmed.¾AgdaÉThe config files we parse have the generic structure of a sequence of field : content entries.¿AgdaParser monad: Can throw String error messages, and collects  LibWarning's library warnings.ÀAgda .agda-lib& file format with parsers and setters.Õ"AgdaParse  .agda-lib file.Sets ¬"× name and turn mentioned include directories into absolute pathes (provided the given ¡ is absolute).ÁAgdaParse file contents.ÂAgdaParse ¾ with À descriptors.ÃAgdaGiven a list of ·5 descriptors (with their custom parsers), parse a ¾ into the “" structure.ÏChecks mandatory fields are present; no duplicate fields, no unknown fields.ÄAgdaÎEnsure that there are no duplicate fields and no mandatory fields are missing.ÅAgdaFind · with given ¸, throw error if unknown.ÆAgdaExample: ƒ parseGeneric "name:Main--BLAndepend:--BLAn standard-library--BLAninclude : . --BLAn src more-src n" == Right [("name",[MainÅ]),("depend",["standard-library"]),("include",[".","src more-src"])] ÇAgdaParse line into µ and ¶ components.ÌPrecondition: line comments and trailing whitespace have been stripped away. Example file: Ö name: Main depend: standard-library include: . src more-src This should give ' [ Header 1 "name" , Content 1 Main’ , Header 2 "depend" , Content 3 "standard-library" , Header 4 "include" , Content 4 "." , Content 5 "src more-src" ] ÈAgdaCollect µ and subsequent ¶s into É.Tailing ¶s? That's an error.Ö"Agda+Remove leading whitespace and line comment.×"Agda4Break a comma-separated string. Result strings are trimmed.ÊAgda-...and trailing, but not leading, whitespace.Ô"Õ"Ö"×"Õ"×"Ö"Ô"b Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê^Ý Ù"Agda.Zero or more consecutive and separated ranges.Û"AgdaÑCharacter ranges. The first character in the file has position 1. Note that the Þ"4 position is considered to be outside of the range. Invariant: Ý" Ë Þ".ß"AgdaThe Û" invariant.à"AgdaThe Ù" invariant.á"Agdaâ~ iff the ranges overlap.)The ranges are assumed to be well-formed.ã"Agda(Converts a range to a list of positions.ä"Agda/Converts several ranges to a list of positions.å"Agda Converts a õ  to a Ù".æ"Agda Converts a õ #, seen as a continuous range, to a Û".ç"Agda minus xs ys! computes the difference between xs and ys<: the result contains those positions which are present in xs but not in ys.*Linear in the lengths of the input ranges.ßÙ"Ú"Û"Ü"Ý"Þ"ß"à"á"â"ã"ä"å"æ"ç"Û"Ü"Ý"Þ"ß"Ù"Ú"à"á"â"ßã"ä"å"æ"ç"c Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêiéð"Agda*Maps containing non-overlapping intervals.éThe implementation does not use IntMap, because IntMap does not come with a constant-time size function.Note the invariant which ð"s should satisfy (û").ò"AgdaÔThe keys are starting points of ranges, and the pairs contain endpoints and values.ó"Agda7A strict pair type where the first argument must be an ¿~.*This type is included because there is no Ì instance for Í in the package strict before version 4.õ"AgdaÞA class that is intended to make it easy to swap between different range map implementations.Note that some ð", operations are not included in this class.ö"AgdaThe map ö" rs x contains the ranges from rs9, and every position in those ranges is associated with x.÷"AgdaConverts range maps to Îs from positions to values.ø"AgdaýConverts the map to a list. The ranges are non-overlapping and non-empty, and earlier ranges precede later ones in the list.ù"Agda?Returns the smallest range covering everything in the map (or é~, if the range would be empty).ÍNote that the default implementation of this operation might be inefficient.ú"AgdaLike ö", but with several Ù" instead of only one.ÏAgdaConstructs a pair.û"AgdaInvariant for ð".8The ranges must not be empty, and they must not overlap.ü"Agda3Converts a list of pairs of ranges and values to a ð"ç. The ranges have to be non-overlapping and non-empty, and earlier ranges have to precede later ones.ÐAgda The number of ranges in the map.%This function should not be exported.ý"Agda,Inserts a value, along with a corresponding Û" , into a ð"Á. No attempt is made to merge adjacent ranges with equal values.ôThe function argument is used to combine values. The inserted value is given as the first argument to the function.þ"Agda The value of þ" p f is a pair (f1, f2)! which contains everything from f. All the positions in f1 are less than p, and all the positions in f2 are greater than or equal to p.ÑAgda A variant of þ"Ú. If a range in the middle was split into two pieces, then those two pieces are returned.ÿ"Agda Returns a ð"> overlapping the given range, as well as the rest of the map.€#AgdaRestricts the ð" to the given range.‚#AgdaMerges ð"Ås by inserting every "piece" of the smaller one into the larger one.ƒ#AgdaMerges ð"Ås by inserting every "piece" of the smaller one into the larger one.ð"ñ"ò"ó"ô"õ"ø"ö"÷"ù"ú"û"ü"ý"þ"ÿ"€#õ"ø"ö"÷"ù"ú"ó"ô"ð"ñ"ò"û"ü"ý"þ"ÿ"€#d Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêj„‰#Š#‹#Œ#�#Ž#�#�#‘#’#“#”#•#–#—#˜#™#š#‰#Š#‹#Œ#�#Ž#�#�#‘#’#“#”#•#–#—#˜#™#š#e Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêlñ«#AgdaSeparate by blank line.¬#Agda1Separate by space that will be removed by minify.For non-removable space, use d <> " " <> d'.µ#Agda1Concatenate vertically, separated by blank lines.º#AgdaApply ·# to Ÿ# if boolean is true.Â#Agda³Check if a string is a valid JS identifier. The check ignores keywords as we prepend z_ to our identifiers. The check is conservative and may not admit all valid JS identifiers.(›#œ#�#ž#Ÿ#¥#¢#¡#¤#£# #§#¦#¨#©#ª#«#¬#­#®#¯#°#±#²#³#´#µ#¶#·#¸#¹#º#»#¼#½#¾#¿#À#Á#Â#(Ÿ#¥#¢#¡#¤#£# #§#¦#¨#©#ª#«#¬#­#®#¯#°#±#²#³#´#µ#¶#·#¸#¹#º#»#¼#�#ž#½#›#œ#¾#¿#À#Á#Â#ª#5«#5¬#6f Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãênÄÒ#AgdaäSpeculation: Type class computing the size (?) of a pattern and collecting the vars it introducesƒ$AgdaÉTake a list of patterns and returns (is, size, vars) where (speculation):4Ò#Ó#Ô#Õ#Ö#Ù#Ø#×#Ú#Û#Ý#Ü#Þ#ß#å#ä#ã#â#á#à#æ#ç#è#é#ê#ë#ì#í#î#ï#ð#ñ#ò#ó#ô#õ#ö#÷#ø#ù#ú#û#ü#ý#þ#ÿ#€$�$‚$ƒ$„$…$4ê#ë#ì#í#î#è#é#ï#ç#æ#ß#å#ä#ã#â#á#à#Þ#ð#ñ#ò#Û#Ý#Ü#ó#ô#õ#ö#Ú#Ö#Ù#Ø#×#÷#ø#ù#ú#Ô#Õ#û#ü#ý#þ#ÿ#€$�$‚$Ò#Ó#ƒ$„$…$g Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê¡XÊš$Agda SCC DAGs.0The maps map SCC indices to and from SCCs/nodes.Ÿ$AgdaWithUniqueInt n consists of pairs of (unique) ¿~s and values of type n.2Values of this type are compared by comparing the ¿~s.£$AgdaVarious kinds of nodes.¥$AgdaNodes with outgoing edges.¦$AgdaNodes with incoming edges.§$Agda!All nodes, with or without edges.¨$AgdaEdges.ª$AgdaOutgoing node.«$AgdaIncoming node.¬$AgdaEdge label (weight).­$Agda Graph n e, is a type of directed graphs with nodes in n and edges in e.ìAt most one edge is allowed between any two nodes. Multigraphs can be simulated by letting the edge type e be a collection type.ËThe graphs are represented as adjacency maps (adjacency lists, but using finite maps instead of arrays and lists). This makes it possible to compute a node's outgoing edges in logarithmic time (O(log n)Â). However, computing the incoming edges may be more expensive.ÌNote that neither the number of nodes nor the number of edges may exceed Ò :: ¿~.¯$AgdaForward edges.°$AgdaInternal invariant.±$AgdaIf there is an edge from s to t, then  lookup s t g is è~ e, where e is the edge's label. O(log n).²$AgdaThe graph's edges. O(n + e).³$Agdaneighbours u g consists of all nodes v" for which there is an edge from u to v in g-, along with the corresponding edge labels.  O(log n + |neighbours u g|).´$AgdaneighboursMap u g consists of all nodes v" for which there is an edge from u to v in g-, along with the corresponding edge labels. O(log n).µ$AgdaedgesFrom g nsô is a list containing all edges originating in the given nodes (i.e., all outgoing edges for the given nodes). If nsÔ does not contain duplicates, then the resulting list does not contain duplicates. O(|ns| log |n| + |edgesFrom g ns|).¶$Agda edgesTo g nsî is a list containing all edges ending in the given nodes (i.e., all incoming edges for the given nodes). If nsÕ does not contain duplicates, then the resulting list does not contain duplicates. O(|ns | n log n).·$AgdaAll self-loops.  O(n log n).¸$Agda All nodes. O(n).¹$AgdaNodes with outgoing edges. O(n).º$AgdaNodes with incoming edges. O(n + e log n).»$Agda Constructs a £$ structure. O(n + e log n).¼$Agda*Nodes without incoming or outgoing edges. O(n + e log n).½$AgdaÆChecks whether the graph is discrete (containing no edges other than à edges). O(n + e).¾$AgdaReturns True iff the graph is acyclic.¿$AgdaÊConstructs a completely disconnected graph containing the given nodes.  O(n log n).À$AgdaÊConstructs a completely disconnected graph containing the given nodes. O(n).Á$Agda fromEdges es$ is a graph containing the edges in es=, with the caveat that later edges overwrite earlier edges. O(|es| log n).Â$AgdafromEdgesWith f es$ is a graph containing the edges in esÍ. Later edges are combined with earlier edges using the supplied function. O(|es| log n).Ã$Agda"Empty graph (no nodes, no edges). O(1).Ä$Agda5A graph with two nodes and a single connecting edge. O(1).Å$Agda Inserts an edge into the graph. O(log n).Æ$Agda Inserts an edge into the graph. O(log n).Ç$AgdainsertWith f s t new inserts an edge from s to t3 into the graph. If there is already an edge from s to t with label old6, then this edge gets replaced by an edge with label  f new old%, and otherwise the edge's label is new. O(log n).È$Agda A variant of Ç$. O(log n).É$AgdaLeft-biased union.Time complexity: See Ê$.Ê$Agda§Union. The function is used to combine edge labels for edges that occur in both graphs (labels from the first graph are given as the first argument to the function).Time complexity:  O(n�A log (n‚An�A + 1) + e�A log e‚A, where Ðn�A/ is the number of nodes in the graph with the smallest number of nodes and n‚A0 is the number of nodes in the other graph, and e�AÍ is the number of edges in the graph with the smallest number of edges and e‚A+ is the number of edges in the other graph."Less complicated time complexity: O((n + e) log n (where n and e refer to the resulting graph).Ë$AgdaUnion. O((n + e) log n (where n and e refer to the resulting graph).Ì$AgdaÜUnion. The function is used to combine edge labels for edges that occur in several graphs. O((n + e) log n (where n and e refer to the resulting graph).Í$Agda A variant of Ó< that provides extra information to the function argument. O(n + e).Î$AgdaReverses an edge. O(1).Ï$Agda.The opposite graph (with all edges reversed). O((n + e) log n).Ð$AgdaRemoves à edges. O(n + e).Ñ$Agda The graph filterNodes p g# contains exactly those nodes from g that satisfy the predicate p=. Edges to or from nodes that are removed are also removed. O(n + e).Ò$AgdaremoveNodes ns g removes the nodes in ns% (and all corresponding edges) from g. O((n + e) log |ns|).Ó$AgdaremoveNode n g removes the node n% (and all corresponding edges) from g. O(n + e).Ô$AgdaremoveEdge s t g removes the edge going from s to t , if any. O(log n).Õ$Agda0Keep only the edges that satisfy the predicate. O(n + e).Ö$AgdaóRemoves the nodes that do not satisfy the predicate from the graph, but keeps the edges: if there is a path in the original graph between two nodes that are retained, then there is a path between these two nodes also in the resulting graph.(Precondition: The graph must be acyclic.Worst-case time complexity:  O(e n log n)) (this has not been verified carefully).×$AgdaRenames the nodes.6Precondition: The renaming function must be injective.Time complexity: O((n + e) log n).Ø$AgdaRenames the nodes.$Precondition: The renaming function ren" must be strictly increasing (if x Ô y then ren x Ô ren y).Time complexity: O(n + e).Ù$Agda'Combines each node label with a unique ¿~.ÈPrecondition: The number of nodes in the graph must not be larger than Ò :: ¿~.Time complexity: O(n + e log n).Ú$AgdaUnzips the graph. O(n + e).Û$AgdacomposeWith times plus g g' finds all edges s --c_i--> t_i --d_i--> u) and constructs the result graph from !edge(s,u) = sum_i (c_i times d_i).Complexity: For each edge s --> t in g' we look up all edges starting with t in g'.>Precondition: The two graphs must have exactly the same nodes.Ü$AgdaÉThe graph's strongly connected components, in reverse topological order.The time complexity is likely O(n + e log n)Õ (but this depends on the, at the time of writing undocumented, time complexity of Õ).Ý$AgdaÉThe graph's strongly connected components, in reverse topological order.The time complexity is likely O(n + e log n)Õ (but this depends on the, at the time of writing undocumented, time complexity of Õ).Þ$Agdaš$ invariant.ß$AgdaThe opposite DAG.à$Agda'The nodes reachable from the given SCC.á$AgdaÇConstructs a DAG containing the graph's strongly connected components.â$AgdaÇConstructs a DAG containing the graph's strongly connected components.ã$AgdareachableFrom g n/ is a map containing all nodes reachable from n in g¨. For each node a simple path to the node is given, along with its length (the number of edges). The paths are as short as possible (in terms of the number of edges).Precondition: n must be a node in g<. The number of nodes in the graph must not be larger than Ò :: ¿~.ËAmortised time complexity (assuming that comparisons take constant time):  O(e log n)ê, if the lists are not inspected. Inspection of a prefix of a list is linear in the length of the prefix.ä$AgdareachableFromSet g ns/ is a set containing all nodes reachable from ns in g.Precondition: Every node in ns must be a node in g<. The number of nodes in the graph must not be larger than Ò :: ¿~.ËAmortised time complexity (assuming that comparisons take constant time): O((|ns | + e) log n).ÖAgdaUsed to implement ã$ and ä$.å$Agda#walkSatisfying every some g from to% determines if there is a walk from from to to in g/, in which every edge satisfies the predicate every(, and some edge satisfies the predicate someç. If there are several such walks, then a shortest one (in terms of the number of edges) is returned.Precondition: from and to must be nodes in g<. The number of nodes in the graph must not be larger than Ò :: ¿~.éAmortised time complexity (assuming that comparisons and the predicates take constant time to compute): O(n + e log n).æ$AgdaConstructs a graph g', with the same nodes as the original graph g. In g' there is an edge from n1 to n2> if and only if there is a (possibly empty) simple path from n1 to n2 in gï. In that case the edge is labelled with all of the longest (in terms of numbers of edges) simple paths from n1 to n2 in g), as well as the lengths of these paths.ãPrecondition: The graph must be acyclic. The number of nodes in the graph must not be larger than Ò :: ¿~.>Worst-case time complexity (if the paths are not inspected):  O(e n log n)( (this has not been verified carefully).1The algorithm is based on one found on Wikipedia.ç$AgdaTransitive closure ported from Agda.Termination.CallGraph.%Relatively efficient, see Issue 1560.è$Agda Version of ç$þ that produces a list of intermediate results paired to the left with a difference that lead to the new intermediat result.ÔThe last element in the list is the transitive closure, paired with the empty graph. (complete g = snd $ last $ completeIter gé$Agda-Computes the transitive closure of the graph.�Uses the Gauss-Jordan-Floyd-Warshall-McNaughton-Yamada algorithm (as described by Russell O'Connor in "A Very General Method of Computing Shortest Paths"  'http://r6.ca/blog/20110808T035622Z.html), implemented using matrices.4The resulting graph does not contain any zero edges.ÊThis algorithm should be seen as a reference implementation. In practice ê$! is likely to be more efficient.ê$Agda-Computes the transitive closure of the graph.�Uses the Gauss-Jordan-Floyd-Warshall-McNaughton-Yamada algorithm (as described by Russell O'Connor in "A Very General Method of Computing Shortest Paths"  'http://r6.ca/blog/20110808T035622Z.html), implemented using ­$, and with some shortcuts:ÓZero edge differences are not added to the graph, thus avoiding some zero edges.ÍStrongly connected components are used to avoid computing some zero edges.ùThe graph's strongly connected components (in reverse topological order) are returned along with the transitive closure.ë$AgdaThe transitive closure. Using ê$�. NOTE: DO NOT USE () AS EDGE LABEL SINCE THIS MEANS EVERY EDGE IS CONSIDERED A ZERO EDGE AND NO NEW EDGES WILL BE ADDED! Use 'Maybe ()' instead.ì$Agda…The transitive reduction of the graph: a graph with the same reachability relation as the graph, but with as few edges as possible.ãPrecondition: The graph must be acyclic. The number of nodes in the graph must not be larger than Ò :: ¿~.Worst-case time complexity:  O(e n log n)) (this has not been verified carefully).1The algorithm is based on one found on Wikipedia.á$Agda*The graph's strongly connected components.Óš$›$œ$�$ž$Ÿ$ $¡$¢$£$¤$¥$¦$§$¨$©$¬$ª$«$­$®$¯$°$±$²$³$´$µ$¶$·$¸$¹$º$»$¼$½$¾$¿$À$Á$Â$Ã$Ä$Å$Æ$Ç$È$É$Ê$Ë$Ì$Í$Î$Ï$Ð$Ñ$Ò$Ó$Ô$Õ$Ö$×$Ø$Ù$Ú$Û$Ü$Ý$Þ$ß$à$á$â$ã$ä$å$æ$ç$è$é$ê$ë$ì$Ó­$®$¯$°$¨$©$¬$ª$«$±$²$³$´$µ$¶$·$¸$¹$º$¼$£$¤$¥$¦$§$»$½$¾$¿$À$Á$Â$Ã$Ä$Å$Ç$Æ$È$É$Ê$Ë$Ì$Í$Î$Ï$Ð$Ó$Ò$Ô$Ñ$Õ$Ö$×$Ø$Ÿ$ $¡$¢$Ù$Ú$Û$Ü$Ý$š$›$œ$�$ž$Þ$ß$à$á$â$ã$ä$å$æ$ê$é$ë$ì$ç$è$h Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâã꤃û$Agdaùtopoligical sort with smallest-numbered available vertex first | input: nodes, edges | output is Nothing if the graph is not a DAG Note: should be stable to preserve order of generalizable variables. Algorithm due to Richard Eisenberg, and works by walking over the list left-to-right and moving each node the minimum distance left to guarantee topological ordering.û$û$i Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê´¤%€%AgdaThese metas are < žD.�%Agda,Lower or upper bound for a flexible variable‰%AgdaA graph forest.�%Agda Going from Lt to Le is pred , going from Le to Lt is succ.X --(R,n)--> Y means  X (R) Y + n#. [ ... if n positive and X + (-n) (R) Y if n negative. ]‘%AgdaNodes not connected.”%Agda4Test for negativity, used to detect negative cycles.¤%Agda1Compute list of edges that start in a given node.¥%Agda/Compute list of edges that target a given node.9Note: expensive for unidirectional graph representations.¦%Agda Set.foldl* does not exist in legacy versions of the  containers package.§%AgdaFloyd-Warshall algorithm.¨%Agda5Convert a label to a weight, decrementing in case of Ë .®%AgdaSplit a list of graphs gs into those that mention node n and those that do not. If n6 is zero or infinity, we regard it as "not mentioned".¯%AgdaÔAdd an edge to a graph forest. Graphs that share a node with the edge are joined.°%AgdaReflexive closure. Add edges 0 -> n -> n -> oo for all nodes n.±%Agdah ±% g if any edge in gÇ between rigids and constants is implied by a corresponding edge in h", which means that the edge in g/ carries at most the information of the one in h.ÓApplication: Constraint implication: Constraints are compatible with hypotheses.´%Agda2Build a graph from list of simplified constraints.µ%Agda2Build a graph from list of simplified constraints.»%AgdaIf we have an edge  X + n <= X (with n >= 0), we must set X = oo.½%Agda2Compute a lower bound for a flexible from an edge.¾%Agda3Compute an upper bound for a flexible from an edge.¿%Agda6Compute the lower bounds for all flexibles in a graph.À%Agda6Compute the upper bounds for all flexibles in a graph.Á%Agda0Compute the bounds for all flexibles in a graph.Â%AgdaãCompute the relative minima in a set of nodes (those that do not have a predecessor in the set).Ã%AgdaáCompute the relative maxima in a set of nodes (those that do not have a successor in the set).Ä%AgdaûGiven source nodes n1,n2,... find all target nodes m1,m2, such that for all j, there are edges n_i --l_ij--> m_j for all i. Return these edges as a map from target notes to a list of edges. We assume the graph is reflexive-transitive.Å%AgdaûGiven target nodes m1,m2,... find all source nodes n1,n2, such that for all j, there are edges n_i --l_ij--> m_j for all i. Return these edges as a map from target notes to a list of edges. We assume the graph is reflexive-transitive.Æ%AgdaÂCompute the sup of two different rigids or a rigid and a constant.Ç%AgdaÂCompute the inf of two different rigids or a rigid and a constant.È%Agda$Compute the least upper bound (sup).É%AgdaÝCompute the greatest lower bound (inf) of size expressions relative to a hypotheses graph.Ì%AgdaèSolve a forest of constraint graphs relative to a hypotheses graph. Concatenate individual solutions.Í%AgdaØCheck that after substitution of the solution, constraints are implied by hypotheses.Î%Agda1Iterate solver until no more metas can be solved.óThis might trigger a (wanted) error on the second iteration (see Issue 2096) which would otherwise go unnoticed.Õ%AgdaPartial implementation of Num.ê%Agda$An edge is negative if its label is.ë%Agda A graph is •%Õ if it contains a negative loop (diagonal edge). Makes sense on transitive graphs.Î%Agda;Meta variable polarities (prefer lower or upper solution?).AgdaÂHypotheses (assumed to have no metas, so, fixed during iteration).AgdaConstraints to solve.Agda7Previous substitution (already applied to constraints).AgdaAccumulated substition.Õü$€%ÿ$þ$ý$�%‚%ƒ%„%…%†%‡%ˆ%‰%Š%Ž%�%Œ%‹%�%“%’%‘%�%”%•%–%˜%—%™%š%›%œ%�%ž%Ÿ% %¡%¢%£%¤%¥%¦%§%¨%©%ª%«%¬%­%®%¯%°%±%²%³%´%µ%¶%·%¸%¹%º%»%¼%½%¾%¿%À%Á%Â%Ã%Ä%Å%Æ%Ç%È%É%Ê%Ë%Ì%Í%Î%Ï%Ð%Õ�%œ%›%š%™%ž%Ÿ% %¡%¢%£%¤%¥%¦%§%–%˜%—%”%•%�%“%’%‘%�%¨%Š%Ž%�%Œ%‹%©%ª%«%¬%‰%­%®%¯%°%±%²%³%´%µ%ˆ%‡%†%¶%·%¸%…%¹%„%º%»%‚%ƒ%�%¼%ü$€%ÿ$þ$ý$½%¾%¿%À%Á%Â%Ã%Ä%Å%Æ%Ç%È%É%Ê%Ë%Ì%Í%Î%Ï%Ð%j Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÀö%Agda÷Subterm occurrences for positivity checking. The constructors are listed in increasing information they provide: 3Mixed <= JustPos <= StrictPos <= GuardPos <= Unused Mixed <= JustNeg <= Unused.÷%Agda-Arbitrary occurrence (positive and negative).ø%AgdaNegative occurrence.ù%Agda/Positive occurrence, but not strictly positive.ú%AgdaStrictly positive occurrence.û%AgdaÖGuarded strictly positive occurrence (i.e., under žD). For checking recursive records.ý%Agda-One part of the description of an occurrence.ÿ%Agda(in the nth argument of a define constant€&Agda'in the principal argument of built-in žD�&Agda"as an argument to a bound variable‚&Agda as an argument of a metavariableƒ&Agdain the type of a constructor„&Agda$in a datatype index of a constructor…&Agda'in the nth clause of a defined function†&Agda1matched against in a clause of a defined function‡&Agda"is an index of an inductive familyˆ&Agdain the definition of a constant‰&AgdaDescription of an occurrence.Š&AgdaƒThe elements of the sequences, read from left to right, explain how to get to the occurrence. The second sequence includes the main information, and if the first sequence is non-empty, then it includes information about the context of the second sequence.‹&Agda&The map contains bindings of the form  bound |-> ess?, satisfying the following property: for every non-empty list w, × â w Ë bound iff Ø [ Ù every w Ú Û some w | (every, some) <- ess ].Œ&Agda+productOfEdgesInBoundedWalk occ g u v bound returns a value distinct from é~ iff there is a walk c (a list of edges) in g, from u to v, for which the product × â (Ü occ c) Ë bound&. In this case the returned value is è~ (× â c) for one such walk c.Preconditions: u and v must belong to g, and bound must belong to the domain of boundToEverySome.”&Agdaö%* is a complete lattice with least element ÷% and greatest element ü%.&It forms a commutative semiring where á is meet (glb) and â0 is composition. Both operations are idempotent.For á, ü% is neutral (zero) and ÷% is dominant. For â, ú% is neutral (one) and ü% is dominant.ö%ü%ú%÷%ø%ù%û%ý%þ%ÿ%€&�&‚&ƒ&„&…&†&‡&ˆ&‰&Š&‹&Œ&ö%ü%ú%÷%ø%ù%û%‰&Š&ý%þ%ÿ%€&�&‚&ƒ&„&…&†&‡&ˆ&‹&Œ&k Safe-Inferred#!$%&.1245789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêçn—¨&AgdaThe Ñ' is not an application.«&Agda(Extended content of an interaction hole.¬&Agda e­&Agda  (rewrite | invert) e0 | ... | en®&Agda=Modules: Top-level pragmas plus other top-level declarations.µ&Agda$Second Range is for REWRITE keyword.¶&Agdafirst string is backend name·&Agdafirst string is backend name¹&AgdaINLINE or NOINLINEº&Agda6Throws an internal error in the scope checker. The Ý+s are words to be displayed with the error.»&Agda:For coinductive records, use pragma instead of regular  eta-equality, definition (as it is might make Agda loop).¼&AgdaApplies to the named function½&AgdaApplies to the current module¾&AgdaÀMark a definition as injective for the pattern matching unifier.¿&Agda*Display lhs as rhs (modifies the printer).À&Agda)Applies to the following function clause.Á&Agda…Applies to the following function (and all that are mutually recursive with it) or to the functions in the following mutual block.Â&Agda…Applies to the following function (and all that are mutually recursive with it) or to the functions in the following mutual block.Ã&Agda:Applies to the following data/record type or mutual block.Å&Agda*Applies to the following data/record type.Ê&Agda  tel. M argsË&Agda  M {{...}}Ì&AgdaþThe representation type of a declaration. The comments indicate which type in the intended family the constructor targets.Í&AgdaÄAxioms and functions can be irrelevant. (Hiding should be NotHidden)Ï&Agda=Variables to be generalized, can be hidden and/or irrelevant.Ò&Agda#lone data signature in mutual blockÕ&Agda%lone record signature in mutual blockØ&Agda$Should not survive beyond the parserÚ&Agdanotation declaration for a nameß&AgdaIn  Agda.Syntax.Concrete.Definitionsþ we generate private blocks temporarily, which should be treated different that user-declared private blocks. Thus the ¼.à&AgdaThe õ 9 here (exceptionally) only refers to the range of the instance( keyword. The range of the whole block InstanceB r ds is fuseRange r ds.í&Agda1Isolated record directives parsed as Declarationsî&AgdaRange of keyword  [co]inductive.ð&Agda Range of [no-]eta-equality keyword.ñ&AgdaIf declaration pattern is present, give its range.ò&Agda(Just type signatures or instance blocks.ÞAgdaJust field signaturesó&AgdaJust type signatures.ô&Agda.From the parser, we get an expression for the as-¬#, which we have to parse into a ¬.õ&AgdaThe content of the as -clause of the import statement.÷&AgdaThe "as" name.ø&AgdaÃThe range of the "as" keyword. Retained for highlighting purposes.ù&Agda3An imported name can be a module or a defined name.þ&AgdaÙThe things you are allowed to say when you shuffle names between name spaces (i.e. in import,  namespace, or open declarations).ÿ&AgdaöAn expression followed by a where clause. Currently only used to give better a better error message in interaction.ƒ'AgdaPossibly empty sequence.‡'AgdaNo where clauses.ˆ'Agda Ordinary where. õ  of the where/ keyword. List of declarations can be empty.‰'Agda Named where: module M where ds. õ  of the keywords module and where . The û flag applies to the ¬ð (not the module contents!) and is propagated from the parent function. List of declarations can be empty.Š'Agdawhere block following a clause.Œ'Agda+No right hand side because of absurd match.�'Agda:Processed (operator-parsed) intermediate form of the core f ps of Ÿ'. Corresponds to ¡'.”'Agda f•'Agda ps–'AgdaRecord projection.—'Agda-Patterns for record indices (currently none).˜'AgdaMain argument.š'AgdaNon-empty; at least one (| p).œ'Agda+Pattern that was expanded from an ellipsis ....Ÿ'Agda;Left hand sides can be written in infix style. For example: +n + suc m = suc (n + m) (f ˜D g) x = f (g x)ÀWe use fixity information to see which name is actually defined. 'AgdaÓOriginal pattern (including with-patterns), rewrite equations and with-expressions.¡'Agdae.g.  f ps | wps¢'Agda(rewrite e | with p <- e in eq) (many)£'Agdawith e1 in eq | {e2} | ... (many)¥'AgdaÜA telescope is a sequence of typed bindings. Bound variables are in scope in later types.§'AgdaBinding (x1@p1 ... xn@pn : A).¨'Agda Let binding (let Ds) or  (open M args).©'AgdaA typed binding.±'Agda. x or {x} or .x or .{x} or {.x} or x@p or (p)²'Agda. (xs : e) or {xs : e}³'Agda0A lambda binding is either domain free or typed.µ'Agda A Binder x@p, the pattern is optionalº'Agda p �C e where cs½'Agda9Concrete patterns. No literals in patterns at the moment.¾'Agdac or x¿'Agda quoteÀ'Agdap p' or  p {x = p'}Á'Agdap1..pn before parsing operatorsÂ'Agdaeg: p => p' for operator _=>_ The ¥Ñ is possibly ambiguous, but it must correspond to one of the names in the set.Ã'Agda{p} or {x = p}Ä'Agda{{p}} or  {{x = p}}Å'Agda (p)Æ'Agda _Ç'Agda ()È'Agdax@p unusedÉ'Agda .eÊ'Agda0, 1, etc.Ë'Agda record {x = p; y = q}Ì'Agdai = i1$ i.e. cubical face lattice generatorÍ'Agda...., only as left-most pattern. Second arg is Nothing before expansion, and Just p after expanding ellipsis to p.Î'Agda| p, for with-patterns.Ñ'AgdaÃConcrete expressions. Should represent exactly what the user wrote.Ò'Agdaex: xÓ'Agdaex: 1 or "foo"Ô'Agdaex: ? or  {! ... !}Õ'Agdaex: _ or _A_5Ö'Agdabefore parsing operators×'Agdaex: e e, e {e}, or  e {x = e}Ø'Agdaex: e + e The ¥Ï is possibly ambiguous, but it must correspond to one of the names in the set.Ù'Agdaex: e | e1 | .. | enÚ'Agdaex: {e} or {x=e}Û'Agdaex: {{e}} or {{x=e}}Ü'Agdaex:  \x {y} -> e or \(x:A){y:B} -> eÝ'Agdaex: \ ()Þ'Agdaex: .\ { p11 .. p1a -> e1 ; .. ; pn1 .. pnz -> en }ß'Agdaex: e -> e or .e -> e (NYI: {e} -> e)à'Agdaex:  (xs:e) -> e or  {xs:e} -> eá'Agdaex: record {x = a; y = b}, or record { x = a; M1; M2 }â'Agdaex: record e {x = a; y = b}ã'Agdaex:  let Ds in e+, missing body when parsing do-notation letä'Agdaex: (e)å'Agdaex: (| e1 | e2 | .. | en |) or (|)æ'Agdaex: do x <- m1; m2ç'Agdaex: () or {}, only in patternsè'Agdaex: x@p, only in patternsé'Agdaex: .p, only in patternsê'Agdaex: ..A, used for parsing ..A -> Bë'Agda!only used for printing telescopesì'Agdaex: quote, should be applied to a nameí'Agdaex:  quoteTerm, should be applied to a termî'Agdaex:  @(tactic t)", used to declare tactic argumentsï'Agdaex: unquote&, should be applied to a term of type Termð'Agdato print irrelevant thingsñ'Agdaex: a = b, used internally in the parserò'Agda...$, used internally to parse patterns.�(AgdaÜAn abstraction inside a special syntax declaration (see Issue 358 why we introduce this).ˆ(Agda-Drop type annotations and lets from bindings.‹(AgdaWe can try to get a  Telescope from a  [LamBinding]ý. If we have a type annotation already, we're happy. Otherwise we manufacture a binder with an underscore for the type.Œ(AgdaSmart constructor for Pi: check whether the  Telescope is empty�(AgdaSmart constructor for Lam: check for non-zero bindings.Ž(AgdaSmart constructor for Let": check for non-zero let bindings.�(AgdaSmart constructor for TLet": check for non-zero let bindings.�(AgdaExtract a record directive‘(Agda#Computes the top-level module name.Precondition: The Ì&— has to be well-formed. This means that there are only allowed declarations before the first module declaration, typically import declarations. See ’(.’(Agda¹Splits off allowed (= import) declarations before the first non-allowed declaration. After successful parsing, the first non-allowed declaration should be a module declaration.™(Agda*Observe the hiding status of an expressionš(Agda-Observe the relevance status of an expression›(Agda2Observe various modifiers applied to an expression�(AgdaÕTurn an expression into a pattern. Fails if the expression is not a valid pattern.ž(AgdaËTurn an expression into a pattern, turning non-pattern subexpressions into Æ'.ßAgda)Generic expression to pattern conversion.¦(AgdaA Š' is à when the whereÇ keyword is absent. An empty list of declarations does not count as à here.§(AgdaRanges are not forced.±(AgdaRanges are not forced.²(AgdaRanges are not forced.³(AgdaRanges are not forced.´(AgdaRanges are not forced.µ(AgdaRanges are not forced.¶(AgdaRanges are not forced.¸(AgdaRanges are not forced.¹(AgdaRanges are not forced.ßAgda&Default result for non-pattern things.AgdaThe expression to translate.AgdaThe translated pattern (maybe).À³´‘’“”•–›š™—˜œ�žŸ ¡£¢¤¥§¦¨ª©«¬±°¯²­®³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕ¨&©&ª&«&¬&­&®&¯&°&±&²&³&´&µ&¶&·&¸&¹&º&»&¼&½&¾&¿&À&Á&Â&Ã&Ä&Å&Æ&Ç&È&É&Ê&Ë&Ì&è&Ó&Ù&ë&Þ&Ú&ä&å&×&ã&Ø&Ï&Ü&Í&Ð&Î&Ñ&Ò&Ô&Õ&Ö&Û&Ý&ß&à&á&â&æ&ç&é&ê&ì&í&ï&î&ñ&ð&ò&ó&ô&õ&ö&÷&ø&ù&ú&û&ü&ý&þ&ÿ&€'�'‚'ƒ'„'…'†'‡'ˆ'‰'Š'‹'�'Œ'Ž'�'�'‘'’'“'”'•'–'—'˜'™'š'›'œ'�'ž'Ÿ' '¡'¢'£'¤'¥'¦'¨'§'©'ª'«'¬'­'®'¯'°'±'²'³'´'µ'¶'·'¸'¹'º'»'¼'½'È'Ê'Ë'Æ'¾'¿'À'Á'Â'Ã'Ä'Å'Ç'É'Ì'Í'Î'Ï'Ð'Ñ'Ò'×'ß'ì'Ó'é'Ø'å'ï'ã'Õ'Ü'à'Ô'Ö'Ù'Ú'Û'Ý'Þ'á'â'ä'æ'ç'è'ê'ë'í'î'ð'ñ'ò'ó'ô'õ'ö'÷'ø'ù'ú'û'ü'ý'þ'ÿ'€(�(‚(ƒ(„(…(†(‡(ˆ(‰(Š(‹(Œ(�(Ž(�(�(‘(’(“(”(•(–(—(˜(™(š(›(œ(�(ž(Ÿ( (ûÑ'Ò'×'ß'ì'Ó'é'Ø'å'ï'ã'Õ'Ü'à'Ô'Ö'Ù'Ú'Û'Ý'Þ'á'â'ä'æ'ç'è'ê'ë'í'î'ð'ñ'ò'ó'€(�(‚(ƒ(Ð'Ï'¨&©&•(–(“(”(—(˜(�(Ÿ( (ž(œ(µ'¶'·'¸'´'†(‡(³'°'±'²'ˆ(©'¦'¨'§'õ'ô'û'ü'ý'þ'ÿ'„(…(ö'÷'ø'ù'ú'«'¬'­'®'¯'‰(Š(ª'¤'¥'‹(Œ(�(Ž(�(í&ï&î&ñ&ð&�(ì&Ì&è&Ó&Ù&ë&Þ&Ú&ä&å&×&ã&Ø&Ï&Ü&Í&Ð&Î&Ñ&Ò&Ô&Õ&Ö&Û&Ý&ß&à&á&â&æ&ç&é&ê&É&Ê&Ë&ó&ò&þ&ý&ù&ü&û&ú&õ&ö&÷&ø&ô&Æ&Ç&È&ž'�'Ÿ' '¡'¢'£'½'È'Ê'Ë'Æ'¾'¿'À'Á'Â'Ã'Ä'Å'Ç'É'Ì'Í'Î'�'�'‘'’'“'”'•'–'—'˜'™'š'›'œ'™(š(›(�'‚'ƒ'„'…'Ž'‹'�'Œ'Š'†'‡'ˆ'‰'ÿ&€'¹'º'»'¼'²&³&´&µ&¶&·&¸&¹&º&»&¼&½&¾&¿&À&Á&Â&Ã&Ä&Å&®&¯&°&±&³´ª&«&¬&­&‘(’(l Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêìü³)AgdaprettyHiding info visible doc# puts the correct braces around doc according to info info and returns  visible doc% if the we deal with a visible thing.*õýüûúùøö÷þÿ€�‚ƒ„…†‡ˆ‰Š¬)­)®)±)¯)°)²)³)´)µ)¶)·)¸)¹)º)»)¼)½)¾)¿)¬)­)®)±)¯)°)²)³)´)µ)¶)·)¸)¹)º)»)¼)½)¾)¿)m Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêðú ƒ*Agdaé~ for root of split tree‡*Agda¿Tag for labeling branches of a split tree. Each branch is associated to either a constructor or a literal, or is a catchall branch (currently only used for splitting on a literal type).‹*AgdaáSplit tree branching. A finite map from constructor names to splittrees A list representation seems appropriate, since we are expecting not so many constructors per data type, and there is no need for random access.�*AgdaAbstract case tree shape.�*AgdaÀNo more splits coming. We are at a single, all-variable clause.‘*AgdaA split is necessary.’*Agda+The number of variables bound in the clause“*AgdaArg. no to split at.•*AgdaSub split trees.˜*AgdaConvert a split tree into a ïõ (for printing).�*†*…*„*ƒ*‚*‡*Š*‰*ˆ*‹*Œ*Ž*�*�*•*”*“*’*‘*�*–*—*˜*™*—*–*�*•*”*“*’*‘*�*Œ*Ž*�*‹*‡*Š*‰*ˆ*�*†*…*„*ƒ*‚*˜*™*n Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêþU ¯*Agda-Sections, as well as non-sectioned operators.²*Agda>For non-sectioned operators this should match the notation's Í*.³*AgdaEffective precedence level. é~ for closed notations.´*Agda� for non-sectioned operators.µ*Agda/All the notation information related to a name.¸*Agda-The names the syntax and/or fixity belong to.ÁInvariant: The set is non-empty. Every name in the list matches ·*.¹*Agda3Associativity and precedence (fixity) of the names.º*Agda!Syntax associated with the names.»*AgdaÐTrue if the notation comes from an operator (rather than a syntax declaration).¼*AgdaClassification of notations.½*AgdaEx:  _bla_blub_.¾*AgdaEx:  _bla_blub.¿*AgdaEx:  bla_blub_.À*AgdaEx: bla_blub.Â*Agda8Data type constructed in the Happy parser; converted to ‘$ before it leaves the Happy code.Ã*Agda x -> y2; 1st argument is the bound name (unused for now).Ä*AgdaSimple named hole with hiding.Ç*AgdaIs the hole a binder?È*Agda2Get a flat list of identifier parts of a notation.É*AgdaÁTarget argument position of a part (Nothing if it is not a hole).Ê*AgdaåIs the part a hole? WildHoles don't count since they don't correspond to anything the user writes.Ë*AgdaIs the part a normal hole?Ì*AgdaIs the part a binder?Í*AgdaBenchmark a pure computation and bill it to the given account./ä*å*æ*‹+Š+‰+ˆ+…+„+ƒ+�+€+ÿ*þ*ü*û*ò*ï*ê*é*ç*è*†+Œ+ñ*í*ë*‡+î*ý*ì*õ*ó*ð*ù*ú*‚+÷*ö*ô*ø*�+Ž+�+�+‘+’+/æ*‹+Š+‰+ˆ+…+„+ƒ+�+€+ÿ*þ*ü*û*ò*ï*ê*é*ç*è*†+Œ+ñ*í*ë*‡+î*ý*ì*õ*ó*ð*ù*ú*‚+÷*ö*ô*ø*å*ä*�+Ž+�+�+‘+’+p Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêrš+AgdaGeneric pattern traversal.See œö.›+Agda Fold pattern.œ+AgdaCombine a pattern and the value computed from its subpatterns.œ+Agda;Combine a pattern and the its recursively computed version.�+Agdapre : Modification before recursion.Agdapost: Modification after recursion.¯+Agdapre : Modification before recursion.°+Agdapost: Modification after recursion.!š+�+œ+›+ž+ +Ÿ+¡+¢+£+¤+¥+¦+§+¨+©+ª+«+¬+­+®+¯+°+±+²+³+´+µ+¶+·+¸+¹+º+!¥+¦+£+¤+¡+¢+ž+ +Ÿ+§+¨+©+ª+«+¬+­+š+�+œ+›+®+¯+°+±+²+³+´+µ+¶+·+¸+¹+º+q Safe-Inferred$!$%&().0145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê£ Ê+AgdaA singleton type for ¼* (except for the constructor Á*).Ï+Agda"Used to define the return type of è+.Ð+AgdaShould sections be parsed?Ü+AgdaThe ¥Ï is possibly ambiguous, but it must correspond to one of the names in the set.ä+Agda†Runs a parser. If sections should be parsed, then identifiers with at least two name parts are split up into multiple tokens, using ßÏ to record the tokens' original positions within their respective identifiers.å+Agda)Parse a specific identifier as a NamePartæ+AgdaËParses a split-up, unqualified name consisting of at least two name parts.«The parser does not check that underscores and other name parts alternate. The range of the resulting name is the range of the first name part that is not an underscore.ç+Agda,Parses a potentially pattern-matching binderè+Agda0Parse the "operator part" of the given notation.ÅNormal holes (but not binders) at the beginning and end are ignored.ÒIf the notation does not contain any binders, then a section notation is allowed."Ê+Î+Í+Ì+Ë+Ï+Ð+Ò+Ñ+Ó+Ö+Õ+Ô+×+à+ß+Þ+Ý+Ü+Û+Ú+Ù+Ø+á+â+ã+ä+å+æ+ç+è+é+ê+ë+"á+â+ã+×+à+ß+Þ+Ý+Ü+Û+Ú+Ù+Ø+Ó+Ö+Õ+Ô+Ð+Ò+Ñ+ä+å+æ+ç+Ï+Ê+Î+Í+Ì+Ë+è+é+ê+ë+r Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêYñ+Agda,Generic traversals for concrete expressions. Note: does not go into patterns!ò+AgdaThis corresponds to Ü.ó+AgdaThis corresponds to à.ô+AgdaThis corresponds to á.ñ+ô+ó+ò+ñ+ô+ó+ò+s Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÔâAgdaWhile ž,þ and Polarities are not semigroups under disjoint union (which might fail), we get a semigroup instance for the monadic m (Fixities, Polarities)% which propagates the first error.ãAgda‘Add more fixities. Throw an exception for multiple fixity declarations. OR: Disjoint union of fixity maps. Throws exception if not disjoint.Ÿ,Agda”Get the fixities and polarity pragmas from the current block. Doesn't go inside modules and where blocks. The reason for this is that these declarations have to appear at the same level (or possibly outside an abstract or mutual block) as their target declaration.äAgdaêCompute the names defined in a declaration. We stay in the current scope, i.e., do not go into modules. “,•,”,–,—,˜,™,š,›,œ,�,ž,Ÿ, ž,�,–,—,˜,™,š,›,œ,“,•,”,Ÿ,t Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê)­¦,Agda$The kind of the forward declaration.§,AgdaName of a data type¨,AgdaName of a record type©,AgdaName of a function.­,Agdawe are nicifying a mutual block®,Agda,we are nicifying decls not in a mutual block¯,AgdaÑSeveral declarations expect only type signatures as sub-declarations. These are:°,Agda  postulate±,Agda primitive. Ensured by parser.²,AgdainstanceÅ. Actually, here all kinds of sub-declarations are allowed a priori.³,Agdafield. Ensured by parser.´,Agdadata ... where=. Here we got a bad error message for Agda-2.5 (Issue 1698).µ,Agda constructor, in interleaved mutual.¶,AgdaNumbering declarations in an interleaved mutual block.º,Agda&Internal number of the data signature.»,AgdaThe data signature.¼,Agda.Constructors associated to the data signature.½,Agda6Function clauses associated to the function signature.¾,Agda–In an `interleaved mutual' block we collect the data signatures, function signatures, as well as their associated constructors and function clauses respectively. Each signature is given a position in the block (from 0 onwards) and each set of constructor / clauses is given a *distinct* one. This allows for interleaved forward declarations similar to what one gets in a new-style mutual block.¿,AgdaIn an inferred mutualí block we keep accumulating nice declarations until all of the lone signatures have an attached definition. The type is therefore a bit span-like: we return an initial segment (the inferred mutual block) together with leftovers.Ä,AgdaëWhen processing a mutual block we collect the various checks present in the block before combining them.É,AgdaÄOne clause in a function definition. There is no guarantee that the Ÿ' actually declares the ¬#. We will have to check that later.Ë,AgdaOnly Ñ,s.Ì,AgdaOnly Ñ,s.Î,Agda1Termination measure is, for now, a variable name.Ð,Agda´The nice declarations. No fixity declarations and function definitions are contained in a single constructor instead of spread out between type signatures and clauses. The private,  postulate, abstract and instanceÄ modifiers have been distributed to the individual declarations. Observe the order of components:ïRange Fixity' Access IsAbstract IsInstance TerminationCheck PositivityCheckfurther attributes(Q)Namecontent (Expr, Declaration ...)Ñ,Agdaø: argument: We record whether a declaration was made in an abstract block.¦À argument: Axioms and functions can be declared irrelevant. (Œ should be �.)Ü,Agda‹An uncategorized function clause, could be a function clause without type signature or a pattern lhs (e.g. for irrefutable let). The Ì& is the actual Ñ&.Þ,AgdaËBlock of function clauses (we have seen the type signature before). The Ì&Ás are the original declarations that were processed into this Þ, and are only used in notSoNiceDeclaration9. Andreas, 2017-01-01: Because of issue #2372, we add ñ6 here. An alias should know that it is an instance.á,Agda (Maybe Range) gives range of the  'pattern' declaration.̦,«,ª,©,¨,§,¬,®,­,¯,µ,´,³,²,±,°,¶,·,½,¼,»,º,¹,¸,¾,¿,Ã,Â,Á,À,Ä,È,Ç,Æ,Å,É,Ê,Ë,Ì,Í,Î,Ï,Ð,å,ä,ã,â,á,à,ß,Þ,Ý,Ü,Û,Ú,Ù,Ø,×,Ö,Õ,Ô,Ó,Ò,Ñ,æ,ç,è,é,ê,ë,ì,í,î,ï,ð,ñ,ÌÐ,å,ä,ã,â,á,à,ß,Þ,Ý,Ü,Û,Ú,Ù,Ø,×,Ö,Õ,Ô,Ó,Ò,Ñ,Ï,Î,Í,Ì,Ë,É,Ê,Ä,È,Ç,Æ,Å,¿,Ã,Â,Á,À,æ,¾,·,½,¼,»,º,¹,¸,¶,ç,è,é,¯,µ,´,³,²,±,°,ê,¬,®,­,¦,«,ª,©,¨,§,ë,ì,í,î,ï,ð,ñ,u Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê4}"ˆ-Agda-Non-fatal errors encountered in the Nicifier.‰-AgdaEmpty abstract block.Š-AgdaEmpty  constructor block.‹-AgdaEmpty field block.Œ-AgdaEmpty variable block.�-AgdaEmpty instance blockŽ-AgdaEmpty macro block.�-AgdaEmpty mutual block.�-AgdaEmpty  postulate block.‘-AgdaEmpty private block.’-AgdaEmpty  primitive block.“-AgdaÅA {-# CATCHALL #-} pragma that does not precede a function clause.”-Agda)Invalid definition in a constructor block•-AgdaÂInvalid constructor block (not inside an interleaved mutual block)–-AgdaÂA {-# NON_COVERING #-} pragma that does not apply to any function.—-Agda×A {-# NO_POSITIVITY_CHECK #-} pragma that does not apply to any data or record type.˜-AgdaÓA {-# NO_UNIVERSE_CHECK #-} pragma that does not apply to a data or record type.™-Agda?A record directive outside of a record / below existing fields.š-AgdaàA {-# TERMINATING #-} and {-# NON_TERMINATING #-} pragma that does not apply to any function.›-AgdaÃDefinitions (e.g. constructors or functions) without a declaration.œ-Agda9Declarations (e.g. type signatures) without a definition.ž-Agdaprivate has no effect on  open public!. (But the user might think so.)Ÿ-Agdaabstract has no effect on  open public!. (But the user might think so.)¡-AgdaPragma {-# NO_TERMINATION_CHECK #-} has been replaced by {-# TERMINATING #-} and {-# NON_TERMINATING #-}.¢-AgdaCOMPILE% pragmas are not allowed in safe mode§-Agdaabstract6 block with nothing that can (newly) be made abstract.¨-Agdainstance8 block with nothing that can (newly) become an instance.©-Agdaprivate5 block with nothing that can (newly) be made private.®-AgdaThe exception type.·-AgdaËIn a mutual block, a clause could belong to any of the åD2 type signatures (¬).¸-AgdaÚIn an interleaved mutual block, a constructor could belong to any of the data signatures (¬)¹-AgdaÒIn a mutual block, all or none need a MEASURE pragma. Range is of mutual block.¼-Agda-Exception with internal source code callstackÂ-Agda(Nicifier warnings turned into errors in --safe mode.<ˆ-©-¨-§-¦-¥-¤-£-¢-¡- -Ÿ-ž-�-œ-›-š-™-˜-—-–-•-”-“-’-‘-�-�-Ž-�-Œ-‹-Š-‰-ª-¬-­-«-®-»-º-¹-¸-·-¶-µ-´-³-²-±-°-¯-¼-¿-¾-½-À-Á-Â-Ã-<¼-¿-¾-½-®-»-º-¹-¸-·-¶-µ-´-³-²-±-°-¯-ª-¬-­-«-ˆ-©-¨-§-¦-¥-¤-£-¢-¡- -Ÿ-ž-�-œ-›-š-™-˜-—-–-•-”-“-’-‘-�-�-Ž-�-Œ-‹-Š-‰-À-Á-Â-Ã-v Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê>ÅÙ-AgdaIf ’!, this name can have a different ê than the key of Õ- pointing to it.Û-AgdaNicifier state.Ý-Agda4Lone type signatures that wait for their definition.Þ-Agda5Termination checking pragma waiting for a definition.ß-Agda4Positivity checking pragma waiting for a definition.à-AgdaÈUniverse checking pragma waiting for a data/rec signature or definition.á-Agda.Catchall pragma waiting for a function clause.â-Agda)Coverage pragma waiting for a definition.ã-Agda(Stack of warnings. Head is last warning.ä-AgdaWe distinguish different ®&s (anonymous definitions) by a unique ê.å-AgdaÁNicifier monad. Preserve the state when throwing an exception.è-AgdaÓRun a Nicifier computation, return result and warnings (in chronological order).é-AgdaInitial nicifier state.ì-AgdaLens for field Ý-.í-AgdaÒAdding a lone signature to the state. Return the name (which is made unique if ’).î-Agda'Remove a lone signature from the state.ï-Agda"Search for forward type signature.ð-Agda4Check that no lone signatures are left in the state.ñ-AgdaÂEnsure that all forward declarations have been given a definition.ó-Agda?Get names of lone function signatures, plus their unique names.ô-Agda Create a Õ- map from an association list.õ-AgdaLens for field Þ-.ù-AgdaLens for field ß-.û-AgdaLens for field à-.ý-AgdaÄGet universe check pragma from a data/rec signature. Defaults to £.þ-AgdaLens for field á-.ÿ-Agda>Get current catchall pragma, and reset it for the next clause.�.AgdaAdd a new warning.Ô-Agda(Stack of warnings. Head is last warning.Õ-AgdaWe retain the ¬ also in the codomain since ¬ as a key is up to Eq Name© which ignores the range. However, without range names are not unique in case the user gives a second definition of the same name. This causes then problems in  replaceSigs, which might replace the wrong signature.ÊAnother reason is that we want to distinguish different occurrences of ®) in a mutual block (issue #4157). The ®$ in the codomain will have a unique ê.1Ô-Õ-Ö-Ú-Ù-Ø-×-Û-ä-â-á-à-ß-Þ-Ý-ã-Ü-å-ç-æ-è-é-ê-ë-ì-í-î-ï-ð-ñ-ò-ó-ô-õ-ö-÷-ø-ù-ú-û-ü-ý-þ-ÿ-€.�.‚.ƒ.„.1å-ç-æ-è-Û-ä-â-á-à-ß-Þ-Ý-ã-Ü-Ö-Ú-Ù-Ø-×-Õ-Ô-é-ê-ë-ì-í-î-ï-ð-ñ-ò-ó-ô-õ-ö-÷-ø-ù-ú-û-ü-ý-þ-ÿ-€.�.‚.ƒ.„.w Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêBðŠ.Agda(Conjunctive constraint.)‹.AgdaAn attribute is a modifier for ¦.‘.AgdaModifiers for Ü.’.AgdaModifiers for ç.”.AgdaModifiers for ç.•.Agda#Concrete syntax for all attributes.–.Agda#Parsing a string into an attribute.—.Agda(Parsing an expression into an attribute.˜.Agda!Setting an attribute (in e.g. an ž). Overwrites previous value.™.AgdaØSetting some attributes in left-to-right order. Blindly overwrites previous settings.š.AgdaSetting Ü if unset.›.AgdaSetting ç if unset.œ.AgdaSetting Æ if unset.�.AgdaSetting Î if unset.ž.Agda'Setting an unset attribute (to e.g. an ž).Ÿ.Agda#Setting a list of unset attributes.Š.‹.�.�.�.Œ.Ž.‘.’.“.”.•.–.—.˜.™.š.›.œ.�.ž.Ÿ. .¡.¢.£.¤.¥.‹.�.�.�.Œ.Ž.Š.‘.’.“.”.•.–.—.˜.™.š.›.œ.�.ž.Ÿ. .¡.¢.£.¤.¥.x Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêJk ª.Agda;Result of comparing a candidate with the current favorites.«.AgdaøGreat, you are dominating a possibly (empty list of favorites) but there is also a rest that is not dominated. If null dominated, then  notDominated2 is necessarily the complete list of favorites.¬.Agda.Sorry, but you are dominated by that favorite.°.Agda!A list of incomparable favorites.³.AgdaGosh, got some pretty aö here, compare with my current favorites! Discard it if there is already one that is better or equal. (Skewed conservatively: faithful to the old favorites.) If there is no match for it, add it, and dispose of all that are worse than a.ÆWe require a partial ordering. Less is better! (Maybe paradoxically.)´.Agda¾Compare a new set of favorites to an old one and discard the new favorites that are dominated by the old ones and vice verse. (Skewed conservatively: faithful to the old favorites.) 'compareFavorites new old = (new', old')¶.Agda)After comparing, do the actual insertion.·.Agda%Compare, then insert accordingly. :insert a l = insertCompared a l (compareWithFavorites a l)¸.Agda=Insert all the favorites from the first list into the second.¹.AgdaùConstruct favorites from elements of a partial order. The result depends on the order of the list if it contains equal elements, since earlier seen elements are favored over later seen equals. The first element of the list is seen first.».Agda°. forms a å under ß and 'union.¼.AgdaÌEquality checking is a bit expensive, since we need to sort! Maybe use a Set! of favorites in the first place?ª.¯.®.­.¬.«.°.².±.³.´.µ.¶.·.¸.¹.°.².±.ª.¯.®.­.¬.«.³.´.µ.¶.·.¸.¹.  Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêPP Á.Agda,A finite map, represented as a set of pairs.%Invariant: at most one value per key.Â.AgdaçLookup keys in the same association list often. Use partially applied to create partial function apply m :: k -> Maybe v. First time:  O(n log n) in the worst case.Subsequently: O(log n).Specification:  apply m == (R m).Ã.Agda9O(n). Get the domain (list of keys) of the finite map.Ä.AgdaÊO(1). Add a new binding. Assumes the binding is not yet in the list.Å.Agda‚O(n). Update the value at a key. The key must be in the domain of the finite map. Otherwise, an internal error is raised.Æ.AgdaùO(n). Delete a binding. The key must be in the domain of the finite map. Otherwise, an internal error is raised.Ç.AgdašO(n). Update the value at a key with a certain function. The key must be in the domain of the finite map. Otherwise, an internal error is raised.È.AgdaMaps concrete module names to a list of abstract module names.•/AgdaÈAll abstract names targeted by a concrete name in scope. Computed by ø/.–/Agda‚A local variable can be shadowed by an import. In case of reference to a shadowed variable, we want to report a scope error.˜/AgdaUnique ID of local variable.™/Agda/Kind of binder used to introduce the variable (», let, ...).š/AgdaÔIf this list is not empty, the local variable is shadowed by one or more imports.›/AgdaêFor each bound variable, we want to know whether it was bound by a »,  , module telescope, pattern, or let.œ/Agda» (currently also used for   and module parameters)�/Agda f ... =ž/Agda  let ... inŸ/Agda  | ... in q /AgdaLocal variables.£/Agda"For the sake of highlighting, the ®/ map also stores the ö. of an A.QName.¥/AgdaThe ç..¦/Agda)Possible renderings of the abstract name.§/Agda”The complete information about the scope at a particular program point includes the scope stack, the local variables, and the context precedence.«/AgdaéThe variables that will be bound at the end of the current block of variables (i.e. clause). We collect them here instead of binding them immediately so we can avoid shadowing between variables in the same variable block.±/Agda&Maps concrete names C.Name to fixities²/Agda(Maps concrete names C.Name to polarities´/AgdaSee û.µ/Agda#Things not exported by this module.¶/Agda+Things defined and exported by this module.·/Agda1Things from open public, exported by this module.»/AgdaÔA scope is a named collection of names partitioned into public and private names.Å/AgdaGet a ‘/ from »/.Æ/Agda A lens for ¿/Ç/Agda`Monadic' lens (Functor sufficient).È/Agda3Shadow a local name by a non-empty list of imports.É/Agda1Treat patternBound variable as a module parameterÊ/Agda*Project name of unshadowed local variable.Ë/Agda%Get all locals that are not shadowed  by imports.Ì/AgdaLenses for ScopeInfo components×/Agda Lens for Î/.Ù/Agda Lens for Ï/.Û/Agda inNameSpace> selects either the name map or the module name map from a ‘/Ø. What is selected is determined by result type (using the dependent-type trickery).ß/Agda?For ambiguous constructors, we might have both alternatives of “!. In this case, we default to ÷..à/Agda?For ambiguous constructors, we might have both alternatives of “!. In this case, we default to ”.â/Agda Only return  [Co]ConName if no ambiguity.ç/AgdaVan Laarhoven lens on æ..è/AgdaVan Laarhoven lens on ß..ë/AgdaThe empty name space.ì/Agda9Map functions over the names and modules in a name space.í/AgdaZip together two name spaces.î/Agda&Map monadic function over a namespace.ï/AgdaThe empty scope.ð/AgdaThe empty scope info.ñ/Agda4Map functions over the names and modules in a scope.ò/AgdaSame as ñ/2 but applies the same function to all name spaces.ó/AgdaSame as ñ/7 but applies the function only on the given name space.ô/Agda Maybe C.NameŠ for defined names and module names. However, the penalty of doing it in two passes should not be too high. (Doubling the run time.)Š0Agda Version of ‰0É that also returns sets of name and module name clashes introduced by renaming0 to identifiers that are already imported by using or lack of hiding.‹0Agda%Rename the abstract names in a scope.Œ0Agda%Remove private name space of a scope.Should be a right identity for ü/. >exportedNamesInScope . restrictPrivate == exportedNamesInScope.�0Agda9Remove private things from the given module from a scope.Ž0AgdaFilter privates out of a §/�0Agda3Disallow using generalized variables from the scope�0Agda.Add an explanation to why things are in scope.‘0Agda5Get the public parts of the public modules of a scope•0AgdaïCompute a flattened scope. Only include unqualified names or names qualified by modules in the first argument.–0Agda:Get all concrete names in scope. Includes bound variables.—0AgdaLook up a name in the scope›0AgdaœFind the concrete names that map (uniquely) to a given abstract qualified name. Sort by number of modules in the qualified name, unqualified names first.�0Agda A version of ›0 that also delivers the ö.. Used in highlighting.ž0AgdaïFind the concrete names that map (uniquely) to a given abstract module name. Sort by length, shortest first.¢0Agda+Add first string only if list is non-empty.¬0AgdaInvariant: the ö.Û components should be equal whenever we have to concrete renderings of an abstract name.·0AgdaÁWe show shadowed variables as prefixed by a ".", as not in scope.Î0Agda/Sets the binding site of all names in the path.Ö.Agdaç. can be DefName, ý., þ..×.Agda(ù. ==) . ç. for all names.Ø.Agda isJust . Ý/ . ç. for all names.Ù.Agda(ú. ==) . ç. for all names.Š0Agda4Merged scope, clashing names, clashing module names.ØË.Ì.Í.Ð.Ï.Î.Ñ.Ó.Ò.Ô.Ü.Û.Ú.Ù.Ø.×.Ö.Õ.Ý.à.ß.Þ.á.ã.â.ä.é.è.ç.æ.å.ê.ì.ë.í.î.ñ.ð.ï.ò.õ.ô.ó.ö.„/ƒ/‚/þ.ý.ü.û.ú.ù.ø.÷.�/€/ÿ.…/‡/†/ˆ/‰/Š/Œ/‹/�/Ž/�/�/‘/•/”/“/’/–/š/™/˜/—/›/Ÿ/ž/�/œ/ /¡/¢/£/¦/¥/¤/§/²/±/°/¯/®/­/¬/«/ª/©/¨/³/´/·/¶/µ/¸/º/¹/»/Á/À/¿/¾/½/¼/Â/Ã/Ä/Å/Æ/Ç/È/É/Ê/Ë/Ì/Í/Î/Ï/Ð/Ñ/Ò/Ó/Ô/Õ/Ö/×/Ø/Ù/Ú/Û/Ü/Ý/Þ/ß/à/á/â/ã/ä/å/æ/ç/è/é/ê/ë/ì/í/î/ï/ð/ñ/ò/ó/ô/õ/ö/÷/ø/ù/ú/û/ü/ý/þ/ÿ/€0�0‚0ƒ0„0…0†0‡0ˆ0‰0Š0‹0Œ0�0Ž0�0�0‘0’0“0”0•0–0—0˜0™0š0›0œ0�0ž0Ÿ0 0¡0¢0Ø»/Á/À/¿/¾/½/¼/¸/º/¹/´/·/¶/µ/Â/³/Ã/Ä/Å/Æ/Ç/§/²/±/°/¯/®/­/¬/«/ª/©/¨/£/¦/¥/¤/¢/¡/ /›/Ÿ/ž/�/œ/–/š/™/˜/—/È/É/Ê/Ë/Ì/Í/Î/Ï/Ð/Ñ/Ò/Ó/Ô/Õ/Ö/×/Ø/Ù/Ú/‘/•/”/“/’/�/�/Ž/�/Š/Œ/‹/ˆ/‰/Û/…/‡/†/ö.„/ƒ/‚/þ.ý.ü.û.ú.ù.ø.÷.�/€/ÿ.Ü/Ý/Þ/ß/à/á/â/ò.õ.ô.ó.ã/ä/å/æ/î.ñ.ð.ï.ê.ì.ë.í.ä.é.è.ç.æ.å.á.ã.â.Ý.à.ß.Þ.ç/è/Ô.Ü.Û.Ú.Ù.Ø.×.Ö.Õ.é/ê/ë/ì/í/î/ï/ð/ñ/ò/ó/ô/õ/ö/÷/ø/ù/ú/û/ü/ý/þ/ÿ/€0�0‚0ƒ0„0…0†0‡0Ñ.Ó.Ò.ˆ0‰0Š0‹0Œ0�0Ž0�0�0‘0’0“0”0•0–0—0˜0Í.Ð.Ï.Î.™0š0›0œ0�0ž0Ÿ0 0Ë.Ì.¡0¢0z Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê3™1Agda:Has the constructor pattern a dotted (forced) constructor?š1AgdaDotted constructor.›1AgdaOrdinary constructor.œ1AgdaConstructor pattern info.ž1AgdaÅDoes this pattern come form the eta-expansion of an implicit pattern?¡1Agda;For a general pattern we remember the source code position.¿1AgdaÕThe range of the "as" and "to" keywords, if any. Retained for highlighting purposes.À1AgdaÁThe "as" module name, if any. Retained for highlighting purposes.Â1Agda Retained for abstractToConcrete of ç&.Ã1AgdaInformation about applicationÇ1Agda6Do we prefer a lambda argument with or without parens?Ò1Agda-Default is system inserted and prefer parens.Ó1AgdaÃ1 with no range information.Õ1AgdaSame as  mkDefInfo but where we can also give the  IsInstanceÖ1AgdaEmpty range for patterns.ó1AgdaDefault value for §1.>™1›1š1œ1 1Ÿ1ž1�1¡1¢1£1¦1¥1¤1§1¬1«1ª1©1¨1­1°1¯1®1±1¹1¸1·1¶1´1³1µ1²1º1»1¼1Â1Á1À1¿1¾1½1Ã1Ç1Æ1Å1Ä1È1É1Ê1Ï1Î1Í1Ì1Ë1Ð1Ñ1Ò1Ó1Ô1Õ1Ö1>Ê1Ï1Î1Í1Ì1Ë1Ð1È1É1Ñ1Ã1Ç1Æ1Å1Ä1Ò1Ó1¼1Â1Á1À1¿1¾1½1º1»1±1¹1¸1·1¶1´1³1µ1²1Ô1Õ1­1°1¯1®1§1¬1«1ª1©1¨1£1¦1¥1¤1¡1¢1Ö1œ1 1Ÿ1ž1�1™1›1š1{ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê‘Ù1¹2Agda#Conversion between different types.»2AgdaÏA type that is intended to be used when constructing highlighting information.>Note the invariant which values of this type should satisfy (�3).ÕThis is a type synonym in order to make it easy to change to another representation."The type should be an instance of õ" Î2,  and å&, and there should be an instance of ¹2 »2 ¼2.¼2AgdaHighlighting information.>Note the invariant which values of this type should satisfy (€3).ÕThis is a type synonym in order to make it easy to change to another representation.½2Agda'Highlighting info with delayed merging.½Merging large sets of highlighting info repeatedly might be costly. The idea of this type is to accumulate small pieces of highlighting information, and then to merge them all at the end.>Note the invariant which values of this type should satisfy (ÿ2).¿2AgdaÈSyntax highlighting information, represented by maps from positions to Î2.,The first position in the file has number 1.Â2AgdaÉA limited kind of syntax highlighting information: a pair consisting of Ù" and Î2.Note the invariant which Â2s should satisfy (þ2).Å2AgdaÒIs the highlighting "token-based", i.e. based only on information from the lexer?Ê2AgdaThe defining module.Ë2AgdaÅThe file position in that module. File positions are counted from 1.Ì2Agda Has this DefinitionSite/ been created at the defining site of the name?Í2Agda#A pretty name for the HTML linking.Î2AgdaËMeta information which can be associated with a character/character range.Ò2Agda×This note, if not null, can be displayed as a tool-tip or something like that. It should contain useful information about the range (like the module containing a certain identifier, or the fixity of an operator).Ó2AgdaÇThe definition site of the annotated thing, if applicable and known.Ô2AgdaIs this entry token-based?Õ2AgdaÚOther aspects, generated by type checking. (These can overlap with each other and with ò2s.)×2Agda.A warning that is considered fatal in the end.Ú2AgdaèUnsolved constraint not connected to meta-variable. This could for instance be an emptyness constraint.Ý2AgdaàUsed for highlighting unreachable clauses, unreachable RHS (because of an absurd pattern), etc.Þ2Agda8Used for shadowed repeated variable names in telescopes.à2AgdaÇWhen this constructor is used it is probably a good idea to include a Ò2* explaining why the pattern is incomplete.á2Agda!Code which is being type-checked.â2Agda Function declaration without matching definition NB: We put CatchallClause last so that it is overwritten by other, more important, aspects in the emacs mode.å2AgdaNameKind(s are figured out during scope checking.æ2AgdaBound variable.ç2AgdaäGeneralizable variable. (This includes generalizable variables that have been generalized).è2Agda%Inductive or coinductive constructor.ê2Agda Record field.ì2Agda Module name.î2Agda Primitive.ï2Agda Record type.ð2Agda!Named argument, like x in {x = v}ñ2AgdaMacro.ò2Agda6Syntactic aspects of the code. (These cannot overlap.)ø2Agda Symbols like forall, =, ->, etc.ù2AgdaThings like Set and Prop.ú2AgdaIs the name an operator part?û2AgdaÊText occurring in pragmas that does not have a more specific aspect.ü2Agda"Non-code contents in literate Agdaý2AgdaÚDelimiters used to separate the Agda code blocks from the other contents in literate Agdaþ2AgdaInvariant for Â2.ÿ2AgdaInvariant for ½2 hl%, parametrised by the invariant for hl.?Additionally the endofunction should be extensionally equal to (fs æ) for some list fs.€3AgdaThe invariant for ¼2.�3AgdaThe invariant for »2.?Additionally the endofunction should be extensionally equal to (fs æ) for some list fs.‚3Agda A variant of ç with Ô2 set to Ç2.ƒ3Agda4Conversion from classification of the scope checker.èAgdaMerges meta information.…3AgdaSome å2#s are more informative than others.‡3AgdaNameKind in Name can get more precise.Óõ"ø"ö"÷"ù"ú"ÿ"€#¹2º2»2¼2½2¾2¿2À2Á2Â2Ã2Ä2Å2Æ2Ç2È2É2Ê2Ë2Ì2Í2Î2Ï2Ð2Ñ2Ò2Ó2Ô2Õ2Ö2Þ2×2Ø2Ù2Ú2Û2Ü2Ý2ß2à2á2â2ã2ä2å2ì2é2è2ë2î2ï2í2ê2æ2ñ2ç2ð2ò2ø2õ2ö2ú2û2ó2ô2ý2÷2ù2ü2þ2ÿ2€3�3‚3ƒ3Óò2ø2õ2ö2ú2û2ó2ô2ý2÷2ù2ü2å2ì2é2è2ë2î2ï2í2ê2æ2ñ2ç2ð2Õ2Ö2Þ2×2Ø2Ù2Ú2Û2Ü2Ý2ß2à2á2â2ã2ä2Î2Ï2Ð2Ñ2Ò2Ó2Ô2È2É2Ê2Ë2Ì2Í2Å2Æ2Ç2Â2Ã2Ä2þ2¿2À2Á2½2¾2ÿ2¼2€3»2�3‚3ƒ3õ"ø"ö"÷"ù"ú"¹2º2ÿ"€#} Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê§…#éAgdaTransposable things.Î3AgdaÏ3 m extracts the diagonal of m.æFor non-square matrices, the length of the diagonal is the minimum of the dimensions of the matrix.Ð3Agda6Type of matrices, parameterised on the type of values.áSparse matrices are implemented as an ordered association list, mapping coordinates to values.Ò3AgdaDimensions of the matrix.Ó3Agda!Association of indices to values.Ô3Agda%Type of matrix indices (row, column).Ö3Agda Row index, 1 <= row <= rows.×3Agda Column index 1 <= col <= cols.Ø3AgdaSize of a matrix.Ú3AgdaNumber of rows, >= 0.Û3AgdaNumber of columns, >= 0.Ü3Agdaâ~ iff the matrix is square.Ý3AgdaReturns â~ iff the matrix is empty.Þ3Agda5Compute the matrix size of the union of two matrices.êAgda (i,)  $ f a), and same for gs and g.íAgda Instance of ä3$ which keeps longer assoc lists.  O(n1 + n2).å3Agda?General pointwise combination function for sparse matrices.  O(n1 + n2).æ3Agdaæ3 (+) m1 m2 adds m1 and m2, using (+) to add values.  O(n1 + n2).Returns a matrix of size Þ3 m1 m2.ç3Agdaç3 f m1 m2! build the pointwise conjunction m1 and m2 . Uses f to combine non-zero values.  O(n1 + n2).Returns a matrix of size  infSize m1 m2.è3Agda"Association list intersection.  O(n1 + n2). ÁinterAssocWith f l l' = { (i, f a b) | (i,a) ˆD l and (i,b) ˆD l' }ÈUsed to combine sparse matrices, it might introduce zero elements if f( can return zero for non-zero arguments.é3Agdaé3 semiring m1 m2 multiplies matrices m1 and m2). Uses the operations of the semiring semiring" to perform the multiplication.0O(n1 + n2 log n2 + £(i <= r1) £(j <= c2) d(i,j)) where r1$ is the number of non-empty rows in m1 and c2' is the number of non-empty columns in m2 and d(i,j)Ñ is the bigger one of the following two quantifies: the length of sparse row i in m1$ and the length of sparse column j in m2.Given dimensions  m1 : r1 × c1 and  m2 : r2 × c2, a matrix of size r1 × c2* is returned. It is not necessary that c1 == r2…, the matrices are implicitly patched with zeros to match up for multiplication. For sparse matrices, this patching is a no-op.ê3Agdaê3 x m adds a new column to mà, after the columns already existing in the matrix. All elements in the new column get set to x.ë3Agdaë3 x m adds a new row to mÙ, after the rows already existing in the matrix. All elements in the new row get set to x.í3AgdaÎPointwise comparison. Only matrices with the same dimension are comparable.î3AgdaDiagonal of sparse matrix.O(n) where n2 is the number of non-zero elements in the matrix.ð3AgdaMatrix transposition. O(n log n) where n2 is the number of non-zero elements in the matrix.ñ3AgdaTransposing coordinates.ò3AgdaSize of transposed matrix.ä3AgdaOnly left map remaining.AgdaOnly right map remaining.Agda!Element only present in left map.Agda"Element only present in right map.AgdaElement present in both maps.íAgda!Element only present in left map.Agda"Element only present in right map.AgdaElement present in both maps.å3Agda$Element only present in left matrix.Agda%Element only present in right matrix.Agda!Element present in both matrices.AgdaResult counts as zero?Í3Î3Ï3Ð3Ò3Ñ3Ó3Ô3Õ3×3Ö3Ø3Ù3Ú3Û3Ü3Ý3Þ3ß3à3á3â3ã3ä3å3æ3ç3è3é3ê3ë3Ð3Ñ3Ó3Ø3Ù3Ú3Û3Ô3Õ3×3Ö3à3ß3â3Ò3Ü3Ý3ã3å3æ3ç3è3é3Í3Î3Ï3á3Þ3ä3ë3ê3~ Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê¸ÿ3AgdaÜA partial order, aimed at deciding whether a call graph gets worse during the completion.�4Agda:In the paper referred to above, there is an order R with ƒ4 Ë Le Ë Lt.This is generalized to ƒ4 Ë 'Decr k' where Decr 1 replaces Lt and Decr 0 replaces LeÖ. A negative decrease means an increase. The generalization allows the termination checker to record an increase by 1 which can be compensated by a following decrease by 2 which results in an overall decrease.´However, the termination checker of the paper itself terminates because there are only finitely many different call-matrices. To maintain termination of the terminator we set a cutoff€ point which determines how high the termination checker can count. This value should be set by a global or file-wise option.See Call for more information.9TODO: document orders which are call-matrices themselves.‚4Agda2Decrease of callee argument wrt. caller parameter.The Bool€ indicates whether the decrease (if any) is usable. In any chain, there needs to be one usable decrease. Unusable decreases come from SIZELT constraints which are not in inductive pattern match or a coinductive copattern match. See issue #2331.ÝUPDATE: Andreas, 2017-07-26: Feature #2331 is unsound due to size quantification in terms. While the infrastructure for usable/unusable decrease remains in place, no unusable decreases are generated by TermCheck.ƒ4AgdaÅNo relation, infinite increase, or increase beyond termination depth.„4Agda&Matrix-shaped order, currently UNUSED.…4Agda$Raw increase which does not cut off.†4Agda$Raw decrease which does not cut off.ˆ4AgdaSmart constructor for Decr k :: Order which cuts off too big values.Possible values for k:  - ?cutoff Ë k Ë ?cutoff + 1.‰4AgdaÒSmart constructor for matrix shaped orders, avoiding empty and singleton matrices.‹4Agdale, lt,  decreasing, unknown4: for backwards compatibility, and for external use.Œ4AgdaUsable decrease.�4AgdaDecreasing and usable?�4AgdaÈMatrix-shaped order is decreasing if any diagonal element is decreasing.‘4AgdaMultiplication of �4.s. (Corresponds to sequential composition.)îAgda collapse mWe assume that mÄ codes a permutation: each row has at most one column that is not Unknown.…To collapse a matrix into a single value, we take the best value of each column and multiply them. That means if one column is all UnknownÒ, i.e., no argument relates to that parameter, then the collapsed value is also Unknown.,This makes order multiplication associative.ïAgda'Can two matrices be multplied together?“4Agda+The supremum of a (possibly empty) list of �4;s. More information (i.e., more decrease) is bigger. ƒ4# is no information, thus, smallest.ðAgda(�4, ð, ‘4) forms a semiring, with ƒ4 as zero and Le as one.”4Agda%The infimum of a (non empty) list of �4$s. Gets the worst information. ƒ4& is the least element, thus, dominant.ñAgdaPick the worst information.•4AgdaÿWe use a record for semiring instead of a type class since implicit arguments cannot occur in instance constraints, like +instance (?cutoff :: Int) => SemiRing Order.—4AgdaInformation order: ƒ4Í is least information. The more we decrease, the more information we have.®When having comparable call-matrices, we keep the lesser one. Call graph completion works toward losing the good calls, tending towards Unknown (the least information).™4Agda/We assume the matrices have the same dimension.š4AgdaIt does not get worse then ` increase'Ã. If we are still decreasing, it can get worse: less decreasing.ÿ3€4�4ƒ4‚4„4…4†4‡4ˆ4‰4Š4‹4Œ4�4Ž4�4�4‘4’4“4”4•4�4ƒ4‚4„4ˆ4…4†4‡4‘4“4”4•4‹4Œ4�4‰4’4Ž4�4�4ÿ3€4Š4 Safe-Inferred#!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÄ…ž4AgdaÖSets of incomparable call matrices augmented with path information. Use overloaded Þ, ß, ê, ò.¡4Agda,Call matrix augmented with path information.£4Agda"The matrix of the (composed call).¤4AgdaMeta info, like call path.¥4Agda0Call matrix multiplication and call combination.¨4AgdaCall matrices.A call matrix for a call f --> g has dimensions  ar(g) × ar(f).9Each column corresponds to one formal argument of caller f9. Each row corresponds to one argument in the call to g.ÆIn the presence of dot patterns, a call argument can be related to several different formal arguments of f. See e.g. testsucceedDotPatternTermination.agda: … data D : Nat -> Set where cz : D zero c1 : forall n -> D n -> D (suc n) c2 : forall n -> D n -> D n f : forall n -> D n -> Nat f .zero cz = zero f .(suc n) (c1 n d) = f n (c2 n d) f n (c2 .n d) = f n d 'Call matrices (without guardedness) are à -1 -1 n < suc n and n < c1 n d ? = c2 n d <= c1 n d = -1 n <= n and n < c2 n d ? -1 d < c2 n d àHere is a part of the original documentation for call matrices (kept for historical reasons):€This datatype encodes information about a single recursive function application. The columns of the call matrix stand for sourceÄ function arguments (patterns). The rows of the matrix stand for target function arguments. Element (i, j)0 in the matrix should be computed as follows:Œ4 (less than) if the j-th argument to the target; function is structurally strictly smaller than the i-th pattern.‹4 (less than or equal) if the j-th argument to the target+ function is structurally smaller than the i-th pattern.�4 otherwise.«4Agda0Call matrix indices = function argument indices.Machine integer ¿~Þ is sufficient, since we cannot index more arguments than we have addresses on our machine.¬4AgdaNon-augmented call matrix.­4AgdaInsert into a call matrix set.®4AgdaUnion two call matrix sets.¯4Agda/Convert into a list of augmented call matrices.²4AgdaCall matrix multiplication.f --(m1)--> g --(m2)--> h is combined to f --(m2 é3 m1)--> h9Note the reversed order of multiplication: The matrix c1 of the second call g-->h in the sequence  f-->g-->h is multiplied with the matrix c2 of the first call.Preconditions: m1 has dimensions  ar(g) × ar(f). m2 has dimensions  ar(h) × ar(g).Postcondition:  m1 >*< m2 has dimensions  ar(h) × ar(f).´4Agda%Augmented call matrix multiplication.¹4Agda1Call matrix set product is the Cartesian product.ž4 4Ÿ4¡4¤4£4¢4¥4¦4§4¨4ª4©4«4¬4­4®4¯4«4¨4ª4©4§4¥4¦4¡4¤4£4¢4¬4ž4 4Ÿ4­4®4¯4€ Safe-Inferred#!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÍ#É4AgdaçA call graph is a set of calls. Every call also has some associated meta information, which should be åâal so that the meta information for different calls can be combined when the calls are combined.Ì4Agda�Calls are edges in the call graph. It can be labelled with several call matrices if there are several pathes from one function to another.Í4AgdaCall graph nodes.Machine integer ¿~Ô is sufficient, since we cannot index more than we have addresses on our machine.Ï4Agda!Make a call with a single matrix.Ð4AgdaMake a call with empty cinfo.Ñ4AgdaÀReturns all the nodes with incoming edges. Somewhat expensive. O(e).Ò4AgdaÍConverts a call graph to a list of calls with associated meta information.óAgdaÍConverts a list of calls with associated meta information to a call graph.Ó4Agda#Takes the union of two call graphs.Ô4Agda!Inserts a call into a call graph.ôAgdaCall graph combination.Application of ¦4 to all pairs (c1,c2) for which ª$ c1 = «$ c2.)Õ4Agda"Call graph comparison. A graph cs' is `worse' than csù if it has a new edge (call) or a call got worse, which means that one of its elements that was better or equal to Le moved a step towards Un.†A call graph is complete if combining it with itself does not make it any worse. This is sound because of monotonicity: By combining a graph with itself, it can only get worse, but if it does not get worse after one such step, it gets never any worse.Õ4 cs completes the call graph csÂ. A call graph is complete if it contains all indirect calls; if f -> g and g -> h are present in the graph, then f -> h should also be present.×4Agda?Displays the recursion behaviour corresponding to a call graph.Û4AgdaÉ4 is a monoid under Ó4.Ü4Agdaà: checks whether the call graph is completely disconnected.ìª$«$¦4É4Ê4Ë4Ì4Í4Î4Ï4Ð4Ñ4Ò4Ó4Ô4Õ4Ö4Í4Ì4Ï4Ð4ª$«$Î4¦4É4Ê4Ë4Ñ4ìÒ4Ó4Ô4Õ4Ö4� Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÒ»á4Agda2TODO: This comment seems to be partly out of date.á4 cs( checks if the functions represented by cs terminate. The call graph cs should have one entry (Ì4&) per recursive function application.Ž perms: is returned if the functions are size-change terminating.,If termination can not be established, then Œ problems is returned instead. Here problemsÇ contains an indication of why termination cannot be established. See lexOrder for further details.ËNote that this function assumes that all data types are strictly positive.ÖThe termination criterion is taken from Jones et al. In the completed call graph, each idempotent call-matrix from a function to itself must have a decreasing argument. Idempotency is wrt. matrix multiplication.ƒThis criterion is strictly more liberal than searching for a lexicographic order (and easier to implement, but harder to justify).ä4AgdaA call c! is idempotent if it is an endo (ª$ == «$–) of order 1. (Endo-calls of higher orders are e.g. argument permutations). We can test idempotency by self-composition. Self-composition c >*< c: should not make any parameter-argument relation worse.á4â4ã4ä4á4â4ã4ä4‚ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÙå4Agda£Sometimes regular expressions aren't enough. Alex provides a way to do arbitrary computations to see if the input matches. This is done with a lex predicate.æ4AgdaîIn the lexer, regular expressions are associated with lex actions who's task it is to construct the tokens.ì4Agda#This is what the lexer manipulates.î4AgdaFile.ï4AgdaCurrent position.ð4AgdaCurrent input.ñ4AgdaPreviously read character.ò4Agda A lens for ð4.ó4Agda,Get the previously lexed character. Same as ñ4Ì. Alex needs this to be defined to handle "patterns with a left-context".ô4Agda,Returns the next character, and updates the ì4 value.ÝThis function is not suitable for use by Alex 2, because it can return non-ASCII characters.õ4Agda'Returns the next byte, and updates the ì4 value.˜A trick is used to handle the fact that there are more than 256 Unicode code points. The function translates characters to bytes in the following way:ÈWhitespace characters other than '\t' and '\n' are translated to ' '.8Non-ASCII alphabetical characters are translated to 'z'.;Other non-ASCII printable characters are translated to '+'.&Everything else is translated to '\1'.×Note that it is important that there are no keywords containing 'z', '+', ' ' or '\1'.*This function is used by Alex (version 3).ø4AgdaConjunction of å4s.ù4AgdaDisjunction of å4s.ú4Agda Negation of å4s.å4æ4ç4è4é4ê4ë4ì4í4î4ï4ð4ñ4ò4ó4ô4õ4ö4÷4ø4ù4ú4ì4í4î4ï4ð4ñ4ò4ó4ô4õ4æ4ç4è4å4ø4ù4ú4ë4ê4é4ö4÷4ƒ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÞÕ ÿ4AgdaÉThe LookAhead monad is basically a state monad keeping with an extra ì4, wrapped around the Á! monad.€5Agda8Throw an error message according to the supplied method.�5Agda$Get the current look-ahead position.‚5AgdaSet the look-ahead position.ƒ5AgdaLift a computation in the Á! monad to the ÿ4 monad.„5AgdaÂLook at the next character. Fails if there are no more characters.õAgda#Look at the next character. Return é~! if there are no more characters.…5AgdaÁConsume all the characters up to the current look-ahead position.†5Agda-Undo look-ahead. Restores the input from the ³!.‡5Agda!Consume the next character. Does „5 followed by …5.ˆ5Agda”Do a case on the current input string. If any of the given strings match we move past it and execute the corresponding action. If no string matches, we execute a default action, advancing the input one character. This function only affects the look-ahead position.‰5AgdaSame as ˆ5¤ but takes the initial character from the first argument instead of reading it from the input. Consequently, in the default case the input is not advanced.Š5AgdaRun a ÿ47 computation. The first argument is the error function. ÿ4€5�5‚5ƒ5„5…5†5‡5ˆ5‰5Š5 ÿ4Š5€5�5‚5ƒ5„5‡5…5†5ˆ5‰5„ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêä Ž5AgdaÁLex a string literal. Assumes that a double quote has been lexed.�5AgdaúLex a character literal. Assumes that a single quote has been lexed. A character literal is lexed in exactly the same way as a string literal. Only before returning the token do we check that the lexed string is of length 1. This is maybe not the most efficient way of doing things, but on the other hand it will only be inefficient if there is a lexical error.öAgdaCustom error function.÷AgdaíThe general function to lex a string or character literal token. The character argument is the delimiter (" for strings and ' for characters).øAgdaïThis is where the work happens. The string argument is an accumulating parameter for the string being lexed.ùAgda�A string gap consists of whitespace (possibly including line breaks) enclosed in backslashes. The gap is not part of the resulting string.úAgdaLex a single character.ûAgda?Lex an escaped character. Assumes the backslash has been lexed.üAgda$Read a number in the specified base.ýAgdaSame as ü$ but with an accumulating parameter.þAgdaThe escape codes.Ž5�5Ž5�5‡ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêæ~©5Agda Should comment tokens be output?ª5Agda Should comment tokens be output?«5Agda,Manually lexing a block comment. Assumes an  open comment< has been lexed. In the end the comment is discarded and ¤5" is called to lex a real token.¬5Agda Lex a hole ( {! ... !}#). Holes can be nested. Returns š «.­5Agda–Skip a block of text enclosed by the given open and close strings. Assumes the first open string has been consumed. Open-close pairs may be nested.©5ª5«5¬5­5©5ª5«5¬5­5… Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêí¦�5Agda Nat(Here the second line is not part of the where8 clause since it is has the same indentation as the dataÄ definition. What we have to do is insert an empty layout block {} after the where;. The only thing that can happen in this state is that ¦5Ý is executed, generating the closing brace. The open brace is generated when entering by §5.¶5AgdašThis state is entered at the beginning of each line. You can't lex anything in this state, and to exit you have to check the layout rule. Done with ¨5.·5AgdaÝThis state can only be entered by the parser. In this state you can only lex the keywords using, hiding, renaming and to•. Moreover they are only keywords in this particular state. The lexer will never enter this state by itself, that has to be done in the parser.¸5AgdaÈReturn the next token. This is the function used by Happy in the parser.  lexer k = ¤5 >>= k†€Agda&Do not use this function; it sets the ¨! to ‡€.º5Agda3This is the main lexing function generated by Alex. ®5¯5°5±5²5³5´5µ5¶5·5¸5¹5º5 ¸5³5¹5´5µ5¶5·5®5¯5°5±5²5º5† Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêýà¥5Agda•At a new line, we confirm either existing tentative layout columns, or, if the last token was a layout keyword, the expected new layout column.¦5Agda&This action is only executed from the µ5/ state. It will exit this state, enter the ¶5Ü state, and return a virtual close brace (closing the empty layout block started by §5).§5Agda ...)š€Agda+Converts lambda bindings to typed bindings.›€AgdaÝReturns the value of the first erasure attribute, if any, or else the default value of type à.çRaises warnings for all attributes except for erasure attributes, and for multiple erasure attributes.œ€AgdaConstructs extended lambdas.�€Agda&Constructs extended or absurd lambdas.ž€AgdaËInterpret an expression as a list of names and (not parsed yet) as-patternsŸ€Agda0Match a pattern-matching "assignment" statement p <- e €AgdaBuild a with-block¡€AgdaBuild a with-statement¢€AgdaBuild a do-statement£€AgdaExtract record directives¤€Agda&Check for duplicate record directives.Á5AgdaðBreaks up a string into substrings. Returns every maximal subsequence of zero or more characters distinct from ü~. ÎsplitOnDots "" == [""] splitOnDots "foo.bar" == ["foo", "bar"] splitOnDots ".foo.bar" == ["", "foo", "bar"] splitOnDots "foo.bar." == ["foo", "bar", ""] splitOnDots "foo..bar" == ["foo", "", "bar"]¥€AgdaReturns â~= iff the name is a valid Haskell (hierarchical) module name.¦€Agda)Turn an expression into a left hand side.§€AgdaÕTurn an expression into a pattern. Fails if the expression is not a valid pattern.¨€AgdaÕTurn an expression into a name. Fails if the expression is not a valid identifier.©€AgdaWhen given expression is e1 = e2Ì, turn it into a named expression. Call this inside an implicit argument {e} or {{e}}Ö, where an equality must be a named argument (rather than a cubical partial match).ª€AgdaParse an attribute.«€Agda%Apply an attribute to thing (usually žö). This will fail if one of the attributes is already set in the thing to something else than the default value.¬€Agda#Apply attributes to thing (usually ž ). Expects a reversed list of attributes. This will fail if one of the attributes is already set in the thing to something else than the default value.­€Agda$Set the tactic attribute of a binder®€Agda$Get the tactic attribute if present.¯€AgdaòReport a parse error if two attributes in the list are of the same kind, thus, present conflicting information.°€AgdaÅReport an attribute as conflicting (e.g., with an already set value).±€AgdaÚReport attributes as conflicting (e.g., with each other). Precondition: List not emtpy.›€Agda!The attributes, in reverse order.œ€Agda#The range of the lambda symbol and where or the braces.Agda The attributes in reverse order.AgdaThe clauses in reverse order.�€AgdaThe range of the lambda symbol.Agda!The attributes, in reverse order.²€Agda Catch-all?Agda Possibly empty list of patterns.»5¼5½5¾5¿5À5Á5¾5¿5¼5½5»5À5Á5³€9 ´€9 Š Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêXÈ5AgdaWrapped Parser type.É5Agda/A monad for handling parse errors and warnings.Ì5AgdaRun a É5ò computation, returning a list of warnings in first-to-last order and either a parse error or the parsed thing.µ€AgdaAdd a •!.¶€AgdaEmbed a ’! as É5 computation.Í5Agda'Returns the contents of the given file.·€AgdaInitial state for lexing.¸€Agda/Initial state for lexing with top-level layout.Î5AgdaParse without top-level layout.¹€AgdaParse with top-level layout.º€AgdaParse with top-level layout.»€AgdaParse with top-level layout.Ð5AgdaExtensions supported by Ñ5.Ò5AgdaParses a module.Ó5AgdaParses a module name.Ô5AgdaParses an expression.Õ5Agda0Parses an expression followed by a where clause.Ö5AgdaÂParses an expression or some other content of an interaction hole.×5Agda3Gives the parsed token stream (including comments).¼€Agda9Keep comments in the token stream generated by the lexer.½€AgdaÀDo not keep comments in the token stream generated by the lexer.¹€AgdaName of source file.AgdaParser to use.AgdaContents of source file.¾€AgdaThe path to the file.Agda)The file contents. Note that the file is not read from disk.Ñ5AgdaThe path to the file.Agda)The file contents. Note that the file is not read from disk.#•!–!—!˜!™!š!›!œ!�!ž!Ÿ! !¡!¢!£!¤!¥!¦!§!È5É5Ê5Ë5Ì5Í5Î5Ï5Ð5Ñ5Ò5Ó5Ô5Õ5Ö5×5#È5Î5Ï5Ñ5Ò5Ó5Ð5Ô5Õ5Ö5×5Í5š!›!œ!�!ž!Ÿ! !¡!¢!£!¤!¥!¦!§!•!–!—!˜!™!É5Ê5Ë5Ì5‹ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê} à5Agda5Eliminations, subsuming applications and projections.á5Agda Application.â5Agda Projection. ø is name of a record projection.ã5Agda'IApply x y r, x and y are the endpointsä5AgdaDrop á5 constructor. (Safe)æ5AgdaDrop á5 constructors. (Safe)ç5AgdaSplit at first non-á5è5Agda Discards Proj f entries.é5AgdaDrop â5 constructors. (Safe)í5AgdaThis instance cheats on â5, use with care. â5s are always assumed to be ½, since they have no ¦. Same for IApply Þ5ß5à5ã5â5á5ä5å5æ5ç5è5é5 à5ã5â5á5ä5å5æ5ç5Þ5ß5è5é5Œ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê" ô5AgdaÊShould a constraint wake up or not? If not, we might refine the unblocker.÷5Agda˜Something where a meta variable may block reduction. Notably a top-level meta is considered blocking. This did not use to be the case (pre Aug 2020).ý5Agda‹What is causing the blocking? Or in other words which metas or problems need to be solved to unblock the blocked computation/constraint.€6AgdaUnblock if meta is instantiated‚6Agda„Even if we are not stuck on a meta during reduction we can fail to reduce a definition by pattern matching for another reason.ƒ6AgdaThe Elim' is neutral and blocks a pattern match.„6AgdaA level is a maximum expression of a closed level and 0..n ©74 expressions each of which is an atom plus a number.°7AgdaSorts.±7AgdaSet “B.²7AgdaProp “B.³7AgdaSetÉâ:.´7AgdaSSet “B.µ7AgdaSizeUniv, a sort inhabited by type Size.¶7AgdaLockUniv, a sort for locks.·7AgdaSort of the pi type.¸7Agda(Sort of a (non-dependent) function type.¹7AgdaSort of another sort.»7AgdaA postulated sort.¼7AgdaÞA (part of a) term or type which is only used for internal purposes. Replaces the abuse of Prop for a dummy sort. The Stringë typically describes the location where we create this dummy, but can contain other information as well.Á7AgdaÖSequence of types. An argument of the first type is bound in later types and so on.Ã7AgdaÍ7 is never Ï7.É7Agda'Types are terms with a sort annotation.Í7AgdaBinder.Í72: The bound variable might appear in the body. Ï7Ð is pseudo-binder, it does not introduce a fresh variable, similar to the const of Haskell.Î7Agda6The body has (at least) one free variable. Danger: Ñ7! doesn't shift variables properlyÕ7Agda Raw values.Def» is used for both defined and undefined constants. Assume there is a type declaration and a definition for every constant, even if the definition is an empty list of clauses.Ö7Agdax es neutral×7Agda+Terms are beta normal. Relevance is ignoredÙ7Agdaf es, possibly a delta/iota-redexÚ7Agdac es or record { fs = es } esÕ allows only Apply and IApply eliminations, and IApply only for data constructors.Û7Agda)dependent or non-dependent function spaceß7AgdaŒIrrelevant stuff in relevant position, but created in an irrelevant context. Basically, an internal version of the irrelevance axiom .irrAx : .A -> A.à7AgdaÕA (part of a) term or type which is only used for internal purposes. Replaces the  Sort Prop hack. The StringÊ typically describes the location where we create this dummy, but can contain other information as well. The second field accumulates eliminations in case we apply a dummy term to more of them.å7Agda­Store the names of the record fields in the constructor. This allows reduction of projection redexes outside of TCM. For instance, during substitution and application.ç7AgdaThe name of the constructor.è7AgdaData or record constructor?é7Agda'Record constructors can be coinductive.ê7Agda"The name of the record fields. žî is stored since the info in the constructor args might not be accurate because of subtyping (issue #2170).ï7AgdaType of argument lists.ñ7Agda Similar to ž˜, but we need to distinguish an irrelevance annotation in a function domain (the domain itself is not irrelevant!) from an irrelevant argument.Dom is used in Û7 of internal syntax, in Context and À7. ž is used for actual arguments (Ö7, Ú7, Ù7 etc.) and in Abstract syntax and other situations.  cubical When domFinite = True for the domain of a Û7¸ type, the elements should be compared by tabulating the domain type. Only supported in case the domain type is primIsOne, to obtain the correct equality for partial elements.õ7Agdae.g. x in {x = y : A} -> B.ö7Agda "@tactic e".ø7AgdaConstant level n‰8Agda6Make an absurd pattern with the given de Bruijn index.‹8AgdaBuild partial ð6 from Ô7Œ8AgdaBuild Ô7 from ð6.�8Agda'Retrieve the PatternInfo from a patternŽ8Agda Retrieve the origin of a pattern�8Agda1Does the pattern perform a match that could fail?”8AgdaÑAbsurd lambdas are internally represented as identity with variable name "()".˜8AgdaAn unapplied variable.™8AgdaAdd ß7 is it is not already a DontCare.š8AgdaËConstruct a string representing the call-site that created the dummy thing.›8Agda,Aux: A dummy term to constitute a dummy termlevel sort/type.œ8AgdaÑA dummy level to constitute a level/sort created at location. Note: use macro  DUMMY_LEVEL !�8Agda5A dummy term created at location. Note: use macro  DUMMY_TERM ! 8Agda5A dummy sort created at location. Note: use macro  DUMMY_SORT !¢8Agda5A dummy type created at location. Note: use macro  DUMMY_TYPE !¤8AgdaÈContext entries without a type have this dummy type. Note: use macro  DUMMY_DOM !ª8AgdaGiven a constant m and level l , compute m + l±8Agda)A traversal for the names in a telescope.µ8Agda(Convert a list telescope to a telescope.¶8Agda%Convert a telescope to its list form.·8AgdaLens to edit a À7 as a list.¸8AgdaRemoving a topmost ß7 constructor.¹8AgdaDoesn't do any reduction.»8Agda>Convert top-level postfix projections into prefix projections.¼8AgdaConvert â5/ projection eliminations according to their � into Ù7 projection applications.½8Agda#A view distinguishing the neutrals Var, Def, and MetaV which can be projected.Ë8AgdaIgnores ¼ and ± and tactic.á8Agda2The size of a telescope is its length (as a list).‹9AgdaA àÌ clause is one with no patterns and no rhs. Should not exist in practice.ü6AgdaThe  PatVarName is a name suggestion.Ò7Agda#eliminations ordered left-to-right.�8Agda-Should absurd patterns count as proper match?Agda1Should projection patterns count as proper match?Agda The pattern.‹ãäçèé‘’“”•æçèéêëíìîïðñòóô÷õöøúùûüƒ�€ÿ‚ýþ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©Þ5ß5à5ã5á5â5ä5å5æ5ç5è5é5ô5õ5ö5÷5ü5û5ú5ø5ù5ý5�6€6þ5ÿ5‚6‡6†6…6ƒ6„6ˆ6‰6Š6‹6Œ6�6Ž6�6�6‘6’6“6”6•6–6—6˜6™6š6›6œ6�6ž6Ÿ6¼6½6¾6¿6À6Á6Â6Ã6Ä6Å6Æ6Ç6È6É6Ê6Ð6Ï6Î6Í6Ë6Ì6Ñ6Ù6Ø6×6Ö6Õ6Ô6Ò6Ó6Ú6ã6â6á6à6ß6Þ6Ý6Û6Ü6ä6å6æ6ë6ê6é6è6ì6ç6í6î6ï6î6ð6ö6õ6ô6ó6ñ6ò6÷6ø6û6ù6ú6ü6ý6„7ƒ7‚7ÿ6þ6€7�7…7Ž7�7Œ7‹7Š7‰7ˆ7†7‡7�7’7�7‘7“7”7 7Ÿ7ž7�7œ7›7š7™7˜7—7•7–7¡7¢7£7¤7¥7¦7§7¨7©7ª7«7¬7­7®7¯7°7¼7»7º7¹7¸7·7¶7µ7´7³7±7²7½7¾7¿7À7Á7Â7Ã7Ä7Å7Æ7Ç7È7É7Ì7Ê7Ë7Í7Ñ7Ð7Î7Ï7Ò7Ó7Ô7Õ7à7Þ7ß7Û7×7Ö7Ü7Ù7Ý7Ú7Ø7á7ã7ä7â7å7ê7é7è7æ7ç7ë7ì7í7î7ï7ð7ñ7ö7õ7ô7÷7ò7ó7ø7ù7ú7û7ü7ý7þ7ÿ7€8�8‚8ƒ8„8…8†8‡8ˆ8‰8Š8‹8Œ8�8Ž8�8�8‘8’8“8”8•8–8—8˜8™8š8›8œ8�8ž8Ÿ8 8¡8¢8£8¤8¥8¦8§8¨8©8ª8«8¬8­8®8¯8°8±8²8³8´8µ8¶8·8¸8¹8º8»8¼8½8¾8¿8‰¼6½6¾6¿6À6Á6Â6Ã6Ä6Å6Æ6Ç6È6É6Ê6Ð6Ï6Î6Í6Ë6Ì6Ñ6Ù6Ø6×6Ö6Õ6Ô6Ò6Ó6Ú6ã6â6á6à6ß6Þ6Ý6Û6Ü6ä6å6æ6ë6ê6é6è6ì6ç6í6î6ï6ð6ö6õ6ô6ó6ñ6ò6÷6ø6û6ù6ú6ü6ý6„7ƒ7‚7ÿ6þ6€7�7…7Ž7�7Œ7‹7Š7‰7ˆ7†7‡7�7’7�7‘7“7”7 7Ÿ7ž7�7œ7›7š7™7˜7—7•7–7¡7¢7£7¤7¥7¦7§7¨7©7ª7«7¬7­7®7¯7°7¼7»7º7¹7¸7·7¶7µ7´7³7±7²7½7¾7¿7À7Á7Â7Ã7Ä7Å7Æ7Ç7È7É7Ì7Ê7Ë7Í7Ñ7Ð7Î7Ï7Ò7Ó7Ô7Õ7à7Þ7ß7Û7×7Ö7Ü7Ù7Ý7Ú7Ø7á7ã7ä7â7å7ê7é7è7æ7ç7ë7ì7í7î7ï7ð7ñ7ö7õ7ô7÷7ò7ó7ø7ù7ú7û7ü7ý7þ7ÿ7€8�8‚8ƒ8„8…8†8‡8ˆ8‰8Š8‹8Œ8�8Ž8�8�8‘8’8“8”8•8–8—8˜8™8š8›8œ8�8ž8Ÿ8 8¡8¢8£8¤8¥8¦8§8¨8©8ª8«8¬8­8®8¯8°8±8²8³8´8µ8¶8·8¸8¹8º8»8¼8½8¾8¿8çèéãäé64Ž Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê[êò9AgdaùThings we can substitute for a variable. Needs to be able to represent variables, e.g. for substituting under binders.ó9Agda+Produce a variable without name suggestion.ô9Agda(Produce a variable with name suggestion.õ9Agda=Are we dealing with a variable? If yes, what is its index?ù9AgdaWe can substitute Terms for variables.ò9õ9ô9ó9ò9õ9ô9ó9� Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê\Rú9û9ü9ý9ú9û9ý9ü9� Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãês".Š:Agda&Gather free variables in a collection.‘:AgdaThe current context.“:AgdaÄAdditional context, e.g., whether to ignore free variables in sorts.”:AgdaAre we flexible or rigid?•:Agda+What is the current relevance and quantity?–:Agda#Method to return a single variable.—:Agda5Where should we skip sorts in free variable analysis?˜:Agda Do not skip.™:AgdaSkip when annotation to a type.š:AgdaSkip unconditionally.ž:AgdaKeep track of ®:7 for every variable, but forget the involved meta vars.¤:AgdaÅRepresentation of a variable set as map from de Bruijn indices to ¨:.¥:AgdaAny representation cî of a set of variables need to be able to be modified by a variable occurrence. This is to ensure that free variable analysis is compositional. For instance, it should be possible to compute `fv (v [u/x])` from `fv v` and `fv u`.)In algebraic terminology, a variable set a; needs to be (almost) a left semimodule to the semiring ¨:.¦:AgdaÜLaws * Respects monoid operations: ``` withVarOcc o mempty == mempty withVarOcc o (x <> y) == withVarOcc o x <> withVarOcc o y ``` * Respects VarOcc composition: ``` withVarOcc oneVarOcc = id withVarOcc (composeVarOcc o1 o2) = withVarOcc o1 . withVarOcc o2 ``` * Respects VarOcc aggregation: ``` withVarOcc (o1 <> o2) x = withVarOcc o1 x <> withVarOcc o2 x ``` Since the corresponding unit law may fail, ``` withVarOcc mempty x = mempty ``` it is not quite a semimodule.¨:AgdaØOccurrence of free variables is classified by several dimensions. Currently, we have ®: and û.¯:AgdaŠDepending on the surrounding context of a variable, it's occurrence can be classified as flexible or rigid, with finer distinctions.ËThe constructors are listed in increasing order (wrt. information content).°:Agda7In arguments of metas. The set of metas is used by '¬ýñ to generate the right blocking information. The semantics is that the status of a variable occurrence may change if one of the metas in the set gets solved. We may say the occurrence is tainted by the meta variables in the set.±:Agda*In arguments to variables and definitions.²:AgdaÄIn top position, or only under inductive record constructors (unit).³:Agda3Under at least one and only inductive constructors.´:Agda5A set of meta variables. Forms a monoid under union.½:Agda®:‘ aggregation (additive operation of the semiring). For combining occurrences of the same variable in subterms. This is a refinement of the ¦ operation for ®: which would work if °: did not have the ´:* as an argument. Now, to aggregate two °:$ occurrences, we union the involved ´:s.¾:Agda Unit for ½:.¿:AgdaAbsorptive for ½:.À:Agda®:ç composition (multiplicative operation of the semiring). For accumulating the context of a variable.°:˜ is dominant. Once we are under a meta, we are flexible regardless what else comes. We taint all variable occurrences under a meta by this meta.±:0 is next in strength. Destroys strong rigidity.³: is still dominant over ²:.²:0 is the unit. It is the top (identity) context.Á:Agda Unit for À:.Â:AgdaÝThe absorptive element of variable occurrence under aggregation: strongly rigid, relevant.Ã:Agda–First argument is the outer occurrence (context) and second is the inner. This multiplicative operation is to modify an occurrence under a context.È:AgdaIgnore free variables in sorts.É:AgdaThe initial context.Ê:AgdaRun function for FreeM.Ë:AgdaBase case: a variable.Ì:Agda3Subtract, but return Nothing if result is negative.Í:AgdaGoing under a binder.Î:Agda Going under n binders.Ï:Agda Changing the û.Ð:Agda Changing the Ü.Ñ:Agda Changing the ®: context.Ò:Agda v[args].¼;AgdaíApply something to a bunch of arguments. Preserves blocking tags (application can never resolve blocking).¿;Agda Apply to some default arguments.À;Agda#Apply to a single default argument.Á;Agda%Raise de Bruijn index, i.e. weakeningÃ;AgdaReplace de Bruijn index i by a Õ7 in something.Å;AgdaÂReplace what is now de Bruijn index 0, but go under n binders. %substUnder n u == subst n (raise n u).Ê;AgdaTo replace index n by term u, do applySubst (singletonS n u). ì “, ” ¢E u : A --------------------------------- “, ” ¢E singletonS |”| u : “, A, ” Ë;AgdaÀSingle substitution without disturbing any deBruijn indices. í “, A, ” ¢E u : A --------------------------------- “, A, ” ¢E inplace |”| u : “, A, ” Ì;Agda$Lift a substitution under k binders.Í;Agda É “ ¢E Á : ”, ¨ ------------------- “ ¢E dropS |¨| Á : ” Î;Agda applySubst (Á Î;& Ã) v == applySubst Á (applySubst à v)Ñ;Agda Ž “ ¢E Á : ” “ ¢E reverse vs : ˜ ----------------------------- (treating Nothing as having any type) “ ¢E prependS vs Á : ”, ˜ Ô;Agda“ ¢E (strengthenS ¥E |”|) : “,”Ö;AgdaÂlookupS (listS [(x0,t0)..(xn,tn)]) xi = ti, assuming x0 < .. < xn.×;Agda #“, ž, ” ¢E raiseFromS |”| |ž| : “, ”Ø;Agda/Instantiate an abstraction. Strict in the term.Ù;AgdaÆInstantiate an abstraction. Lazy in the term, which allow it to be  IMPOSSIBLEÇ in the case where the variable shouldn't be used but we cannot use Ú;. Used in Apply.Ú;Agda9Instantiate an abstraction that doesn't use its argument.Þ;AgdaunderAbs k a b applies k to a# and the content of abstraction b# and puts the abstraction back. aÍ is raised if abstraction was proper such that at point of application of k and the content of b. are at the same context. Precondition: a and b& are at the same context at call time.ß;AgdaunderLambdas n k a b drops n initial ×7s from b, performs operation k on a and the body of b, and puts the ×7 s back. aÀ is raised correctly according to the number of abstractions.,´;µ;¶;·;¹;¸;º;»;¼;¾;½;¿;À;Á;Â;Ã;Ä;Å;Æ;Ç;È;É;Ê;Ë;Ì;Í;Î;Ï;Ð;Ñ;Ò;Ó;Ô;Õ;Ö;×;Ø;Ù;Ú;Û;Ü;Ý;Þ;ß;,¼;¾;½;¿;À;º;»;·;¹;¸;¶;µ;´;Á;Â;Ã;Ä;Å;Æ;Ç;È;É;Ê;Ë;Ì;Í;Î;Ï;Ð;Ñ;Ò;Ó;Ô;Õ;Ö;×;Ø;Ù;Ú;Û;Ü;Ý;Þ;ß;Ð;4“ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêˆß/á;å;â;æ;ä;ã;ç;è;í;ì;ë;ê;é;î;ô;ð;ó;ñ;ò;ï;õ;û;ú;ù;ø;÷;ö;ü;ý;ƒ<„<‚<þ;…<€<‡<†<ÿ;�<ˆ<‰<Š<‹<Œ<�<Ž<� State [i] (f (Pattern' (i,x)))¥<Agda+Arity of a function, computed from clauses.§<AgdaÜTranslate the clause patterns to terms with free variables bound by the clause telescope.%Precondition: no projection patterns.¨<AgdaëTranslate the clause patterns to an elimination spine with free variables bound by the clause telescope.©<Agda5Augment pattern variables with their de Bruijn index.¬<AgdaÏComputes the permutation from the clause telescope to the pattern variables.Use as  fromMaybe  IMPOSSIBLE . dbPatPermË to crash in a controlled way if a de Bruijn index is out of scope here.ÏThe first argument controls whether dot patterns counts as variables or not.­<AgdaÏComputes the permutation from the clause telescope to the pattern variables.Use as  fromMaybe  IMPOSSIBLE . clausePermË to crash in a controlled way if a de Bruijn index is out of scope here.®<Agda…Turn a pattern into a term. Projection patterns are turned into projection eliminations, other patterns into apply elimination.±<AgdaÆCompute from each subpattern a value and collect them all in a monoid.²<AgdaÅTraverse pattern(s) with a modification before the recursive descent.³<AgdaÄTraverse pattern(s) with a modification after the recursive descent.´<Agda!Get the number of common initial á5 patterns in a list of clauses.µ<AgdaGet the number of initial á5 patterns in a clause.¶<AgdaGet the number of initial á5 patterns.¼<AgdaModify the content of VarP, and the closest surrounding NamedArg. Note: the  mapNamedArg for Pattern'! is not expressible simply by fmap or traverse etc., since ConP has NamedArg1 subpatterns, which are taken into account by  mapNamedArg.�<Agda>Combine a pattern and the value computed from its subpatterns.ž<Agdapre : Modification before recursion.Agdapost: Modification after recursion.²<Agdapre : Modification before recursion.³<Agdapost: Modification after recursion.—<™<˜<š<›<œ<ž<�<Ÿ< <¡<¤<£<¢<¥<¦<§<¨<©<ª<«<¬<­<®<¯<°<±<²<³<§<¨<¥<¦<¡<¤<£<¢<©<ª<«<¬<­<®<¯<°<Ÿ< <œ<ž<�<±<²<³<š<›<—<™<˜<• Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê–NÉ<AgdaGeneric term traversal.ÏNote: ignores sorts in terms! (Does not traverse into or collect from them.)Ê<Agda?Generic traversal with post-traversal action. Ignores sorts.Ë<AgdaGeneric fold, ignoring sorts.Ì<Agda5Put it in a monad to make it possible to do strictly.É<Ë<Ê<Ì<É<Ë<Ê<Ì<– Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêœËå<AgdaCase tree with bodies.æ<Agda Case n bs stands for a match on the n(-th argument (counting from zero) with bs as the case branches. If the n+-th argument is a projection, we have only ì< with arity 0.ç<Agda Done xs b stands for the body b where the xs® contains hiding and name suggestions for the free variables. This is needed to build lambdas on the right hand side for partial applications which can still reduce.è<AgdaúAbsurd case. Add the free variables here as well so we can build correct number of lambdas for strict backends. (#4280)é<AgdaBranches in a case tree.ë<Agda3We are constructing a record here (copatterns). ì< lists projections.ì<AgdaïMap from constructor (or projection) names to their arity and the case subtree. (Projections have arity 0.)í<AgdaþEta-expand with the given (eta record) constructor. If this is present, there should not be any conBranches or litBranches.î<Agda!Map from literal to case subtree.ï<Agda'(Possibly additional) catch-all clause.ð<Agda?(if True) In case of non-canonical argument use catchAllBranch.ñ<AgdaäLazy pattern match. Requires single (non-copattern) branch with no lit branches and no catch-all.û<AgdañCheck that the requirements on lazy matching (single inductive case) are met, and set lazy to False otherwise.ü<Agda1Check whether a case tree has a catch-all clause.ý<Agda5Check whether a case tree has any projection patternsä<å<æ<è<ç<é<ñ<ð<ï<î<í<ì<ë<ê<ò<õ<ô<ó<ö<÷<ø<ù<ú<û<ü<ý<þ<ò<õ<ô<ó<é<ñ<ð<ï<î<í<ì<ë<ê<å<æ<è<ç<ä<ö<÷<ø<ù<ú<û<ü<ý<þ<— Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê v¢=AgdaéReturns every meta-variable occurrence in the given type, except for those in sort annotations on types.¥=AgdaReturns £= in a list. allMetasList = allMetas (:[]).—Note: this resulting list is computed via difference lists. Thus, use this function if you actually need the whole list of metas. Otherwise, use £= with a suitable monoid.¦=Agdaâ~ if thing contains no metas. noMetas = null . allMetasList.§=Agda8Returns the first meta it find in the thing, if any. 'firstMeta == listToMaybe . allMetasList.¨=AgdaÁA blocker that unblocks if any of the metas in a term are solved.©=AgdaÁA blocker that unblocks if any of the metas in a term are solved.¢=£=¤=¥=¦=§=¨=©=¢=£=¤=¥=¦=§=¨=©=˜ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãꣾ¸=AgdaGetting the used definitions.Note: in contrast to •þ getDefsÆ also collects from sorts in terms. Thus, this is not an instance of foldTerm.º=Agda*What it takes to get the used definitions.Á=AgdaInputs to and outputs of getDefs' are organized as a monad.Â=AgdagetDefs' lookup emb aÆ extracts all used definitions (functions, data/record types) from a, embedded into a monoid via emb7. Instantiations of meta variables are obtained via lookup."Typical monoid instances would be [QName] or  Set QName. Note that embÖ can also choose to discard a used definition by mapping to the unit of the monoid. ¸=¹=º=¼=»=½=À=¿=¾=Á=Â= Â=Á=½=À=¿=¾=º=¼=»=¸=¹=™ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÆÎîÖ=AgdaTurn a name into an expression.Ø=AgdaAre we in an abstract block?)In that case some definition is abstract.ß=Agda,Parameterised over the type of dot patterns.â=AgdaDestructor pattern d.ã=Agda%Defined pattern: function definition f ps÷. It is also abused to convert destructor patterns into concrete syntax thus, we put AmbiguousQName here as well.ä=AgdaÜUnderscore pattern entered by user. Or generated at type checking for implicit arguments.æ=Agda Dot pattern .eì=Agda| p, for with-patterns.í=AgdaPattern with type annotationï=AgdaØThe lhs in projection-application and with-pattern view. Parameterised over the type e of dot patterns.ð=Agda&The head applied to ordinary patterns.ñ=Agda Projection.ò=AgdaWith patterns.ó=AgdaHead f.ô=AgdaApplied to patterns ps.õ=AgdaRecord projection identifier.ö=AgdaMain argument of projection.÷=Agda E.g. the ð=.ø=AgdaApplied to with patterns | p1 | ... | pn*. These patterns are not prefixed with WithP!ù=AgdaôThe lhs of a clause in focused (projection-application) view (outside-in). Projection patters are represented as ñ=s.û=AgdaRange.ü=Agda Copatterns.ý=AgdaØThe lhs of a clause in spine view (inside-out). Projection patterns are contained in  spLhsPats, represented as ProjP d.ÿ=AgdaRange.€>Agda!Name of function we are defining.�>Agda3Elimination by pattern, projections, with-patterns.…>AgdaThe ø" is the name of the with function.ˆ>AgdaóWe store the original concrete expression in case we have to reproduce it during interactive case splitting. é~ for internally generated rhss.‰>AgdaThe øÁs are the names of the generated with functions, one for each ñ>.Š>AgdaãThe patterns stripped by with-desugaring. These are only present if this rewrite follows a with.‹>AgdaThe RHS should not be another  RewriteRHS.Œ>Agda&The where clauses are attached to the  RewriteRHS by•>AgdaThe declaration is a Ù>.–>AgdaWe could throw away where0 clauses at this point and translate them to let,. It's not obvious how to remember that the let was really a where6 clause though, so for the time being we keep it here.™>Agda–Only in with-clauses where we inherit some already checked patterns from the parent. These live in the context of the parent clause left-hand side.�>Agda†A user pattern together with an internal term that it should be equal to after splitting is complete. Special cases: * User pattern is a variable but internal term isn't: this will be turned into an as pattern. * User pattern is a dot pattern: this pattern won't trigger any splitting but will be checked for equality after all splitting is complete and as patterns have been bound. * User pattern is an absurd pattern: emptiness of the type will be checked after splitting is complete. * User pattern is an annotated wildcard: type annotation will be checked after splitting is complete.¤>AgdaõWe don't yet know the position of generalized parameters from the data sig, so we keep these in a set on the side.¨>AgdaêMaps generalize variables to the corresponding bound variable (to be introduced by the generalisation).¬>Agda¾A typed binding. Appears in dependent function spaces, typed lambdas, and telescopes. It might be tempting to simplify this to only bind a single name at a time, and translate, say,  (x y : A) to (x : A)(y : A)Ç before type-checking. However, this would be slightly problematic: $We would have to typecheck the type A several times.If AØ contains a meta variable or hole, it would be duplicated by such a translation.ÓWhile 1. is only slightly inefficient, 2. would be an outright bug. Duplicating Aþ could not be done naively, we would have to make sure that the metas of the copy are aliases of the metas of the original.­>AgdaAs in telescope  (x y z : A) or type (x y z : A) -> B.®>AgdaE.g.  (let x = e) or  (let open M).¯>Agda0A lambda binding is either domain free or typed.°>Agda. x or {x} or .x or {x = y} or x@p or (p)±>Agda. (xs:e) or {xs:e} or (let Ds)º>AgdaOnly Ô>s.»>AgdaBindings that are valid in a let.¼>Agda LetBind info rel name type defn½>AgdaIrrefutable pattern binding.¾>Agda*LetApply mi newM (oldM args) renamings dir. The ImportDirective is for highlighting purposes.¿>Agda,only for highlighting and abstractToConcreteÀ>Agda?Only used for highlighting. Refers to the first occurrence of x in let x : A; x = e(. | LetGeneralize DefInfo ArgInfo ExprÃ>AgdaÔ. is not Ú.:. Name can be ambiguous e.g. for built-in constructors.Ä>Agda×Builtins that do not come with a definition, but declare a name for an Agda concept.Å>Agda"Range is range of REWRITE keyword.È>Agda:For coinductive records, use pragma instead of regular  eta-equality, definition (as it is might make Agda loop).Í>Agda tel. M args : applies M to args and abstracts tel.Î>Agda  M {{...}}Ô>Agda3Type signature (can be irrelevant, but not hidden).ÐThe fourth argument contains an optional assignment of polarities to arguments.Õ>AgdaÂFirst argument is set of generalizable variables used in the type.Ö>Agda record field×>Agdaprimitive functionØ>Agda)a bunch of mutually recursive definitionsÚ>AgdaThe ImportDirective is for highlighting purposes.Û>AgdaThe ImportDirective is for highlighting purposes.Ý>Agda'only retained for highlighting purposesÞ>Agdasequence of function clausesß>Agdalone data signatureá>Agdalone record signatureâ>AgdaThe ñ>' gives the constructor type telescope, (x1 : A1)..(xn : An) -> PropÆ, and the optional name is the constructor's name. The optional õ  is for the pattern attribute.ã>AgdaOnly for highlighting purposesæ>Agdascope annotationì>AgdaRenaming (generic).ð>AgdaRecord field assignment f = e.ñ>AgdaÄExpressions after scope checking (operators parsed, names resolved).ò>AgdaBound variable.ó>AgdaÊConstant: axiom, function, data or record type, with a possible suffix.ô>AgdaProjection (overloaded).õ>AgdaConstructor (overloaded).ö>AgdaPattern synonym.÷>AgdaMacro.ø>AgdaLiteral.ù>Agda&Meta variable for interaction. The Ù" is usually identical with the Î1 of Ê1Â. However, if you want to print an interaction meta as just ? instead of ?n, you should set the Î1 to é~ while keeping the Ù.ú>Agda=Meta variable for hidden argument (must be inferred locally).û>Agda.e, for postfix projection.ü>AgdaOrdinary (binary) application.ý>AgdaWith application.þ>Agda» bs ’C e.ÿ>Agda»() or »{}.�?AgdaDependent function space “ ’C A.‚?Agda(Like a Pi, but the ordering is not knownƒ?AgdaNon-dependent function space.„?Agda let bs in e.…?Agda#Only used when printing telescopes.†?AgdaRecord construction.‡?AgdaRecord update.ˆ?AgdaScope annotation.‰?AgdaQuote an identifier ø.Š?Agda Quote a term.‹?Agda#The splicing construct: unquote ...Œ?Agda For printing DontCare from Syntax.Internal.Ž?AgdaèA name in a binding position: we also compare the nameConcrete when comparing the binders for equality.With  --caching¿ on we compare abstract syntax to determine if we can reuse previous typechecking results: during that comparison two names can have the same nameId but be semantically different, e.g. in  {_ : A} -> .. vs.  {r : A} -> ...‘?AgdaPattern synonym for regular Def“?Agda!Smart constructor for Generalizedž?Agda$The name defined by the given axiom.3Precondition: The declaration has to be a (scoped) Ô>.Ü?AgdaDoes not compare §/ fields.Ý?AgdaDoes not compare §/È fields. Does not distinguish between prefix and postfix projections.ß?AgdaIgnore õ  when comparing ù=s.à?AgdaIgnore ˆ> when comparing ‚>s.è?AgdaTurn a Ô. into an expression.Assumes name is not Ú..é?AgdaTurn an ä. into an expression.›‘’“”•æçèéêëíìîïðñòóô÷õöøúùûüƒ�€ÿ‚ýþ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©Ò=Ó=Ô=Õ=Ö=×=Ø=Ù=Ú=Û=Ü=Ý=Þ=ß=é=ã=â=ì=ë=æ=ç=í=ä=à=ê=è=å=á=î=ï=ø=÷=ö=õ=ô=ó=ò=ð=ñ=ù=ü=ú=û=ý=�>€>þ=ÿ=‚>Œ>‹>Š>‰>ˆ>‡>†>…>ƒ>„>�>Ž>�>�>‘>’>•>“>”>–>›>™>˜>š>—>œ>�>¡> >ž>Ÿ>¢>¥>£>¤>¦>©>§>¨>ª>«>¬>®>­>¯>°>±>²>³>¶>´>µ>·>¸>¹>º>»>À>¿>¾>¼>½>Á>Ä>Ë>É>È>Ê>Ç>Æ>Å>Â>Ã>Ì>Í>Î>Ï>Ð>Ñ>Ò>Ó>æ>ã>â>á>Ù>Þ>Ô>å>ä>Û>à>ß>Ö>Ø>Õ>Ý>×>Ü>Ú>ç>è>ë>é>ê>ì>í>î>ï>ð>ñ>ˆ?ó>ô>÷>ö>‚?Œ?Š?…?‡?†?€?ÿ>ý>ù>�?þ>ú>„?ò>‹?û>ø>‰?ƒ?ü>õ>�?Ž?�?�?‘?’?“?”?•?–?—?˜?™?š?›?œ?�?ž?Ÿ? ?¡?¢?£?ÒÒ=Ó=Ô=Õ=Ö=×=Ø=Ù=Ú=Û=Ü=Ý=Þ=ß=é=ã=â=ì=ë=æ=ç=í=ä=à=ê=è=å=á=î=ï=ø=÷=ö=õ=ô=ó=ò=ð=ñ=ù=ü=ú=û=ý=�>€>þ=ÿ=‚>Œ>‹>Š>‰>ˆ>‡>†>…>ƒ>„>�>Ž>�>�>‘>’>•>“>”>–>›>™>˜>š>—>œ>�>¡> >ž>Ÿ>¢>¥>£>¤>¦>©>§>¨>ª>«>¬>®>­>¯>°>±>²>³>¶>´>µ>·>¸>¹>º>»>À>¿>¾>¼>½>Á>Ä>Ë>É>È>Ê>Ç>Æ>Å>Â>Ã>Ì>Í>Î>Ï>Ð>Ñ>Ò>Ó>æ>ã>â>á>Ù>Þ>Ô>å>ä>Û>à>ß>Ö>Ø>Õ>Ý>×>Ü>Ú>ç>è>ë>é>ê>ì>í>î>ï>ð>ñ>ˆ?ó>ô>÷>ö>‚?Œ?Š?…?‡?†?€?ÿ>ý>ù>�?þ>ú>„?ò>‹?û>ø>‰?ƒ?ü>õ>�?Ž?�?�?‘?’?“?”?•?–?—?˜?™?š?›?œ?�?ž?Ÿ? ?¡?¢?£?š Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÎoÎ@Agda-Extracts "all" names which are declared in a Ó>.Includes: local modules and where clauses. Excludes:  open public, let, with" function names, extended lambdas.Ñ@AgdaÉApply an expression rewriting to every subexpression, inside-out. See Agda.Syntax.Internal.Generic.Ò@AgdaÅThe first expression is pre-traversal, the second one post-traversal.Ü@AgdaCollects plain lambdas.á@Agda-Gather applications to expose head and spine.ÅNote: everything is an application, possibly of itself to 0 argumentsæ@AgdaGather top-level å= atterns and í=%atterns to expose underlying pattern.ç@Agda Remove top ˆ? wrappers.è@AgdaRemove ˆ? wrappers everywhere.!NB: Unless the implementation of Ñ@Æ for clauses has been finished, this does not work for clauses yet.Î@Ï@Ð@Ñ@Ò@Ô@Ó@Õ@Ö@×@Ø@Ù@Ú@Û@Ü@Ý@Þ@ß@à@á@â@ã@ä@å@æ@ç@è@é@ê@ß@à@Þ@á@â@ã@ä@Ü@Ý@å@æ@ç@è@é@ê@Û@Ú@Ù@Ø@×@Ö@Ñ@Ò@Ô@Ó@Õ@Ð@Î@Ï@› Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÐ[™AAgda£Merge a list of pattern synonym definitions. Fails unless all definitions have the same shape (i.e. equal up to renaming of variables and constructor names).šAAgda.Match an expression against a pattern synonym.›AAgda*Match a pattern against a pattern synonym.™AšA›AšA›A™Aœ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÚ”œAAgda-Convert a focused lhs to spine view and back.ŸAAgdaThe next patterns are ...(This view discards ¡1.) AAgda&Application patterns (non-empty list).¡AAgda6A projection pattern. Is also stored unmodified here.¢AAgdaÈWith patterns (non-empty list). These patterns are not prefixed with ì=.£AAgdaGeneric pattern traversal.¥AAgda Fold pattern.¦AAgdaTraverse pattern.ªAAgdaÆCompute from each subpattern a value and collect them all in a monoid.«AAgdaÅTraverse pattern(s) with a modification before the recursive descent.¬AAgdaÄTraverse pattern(s) with a modification after the recursive descent.­AAgda?Map pattern(s) with a modification after the recursive descent.®AAgda9Collect pattern variables in left-to-right textual order.¯AAgda4Check if a pattern contains a specific (sub)pattern.°AAgdaÀCheck if a pattern contains an absurd pattern. For instance, suc () , does so.+Precondition: contains no pattern synonyms.±AAgda)Check if a pattern contains an @-pattern.²AAgdaêCheck if any user-written pattern variables occur more than once, and throw the given error if they do.³AAgdaPattern substitution.çFor the embedded expression, the given pattern substitution is turned into an expression substitution.´AAgdaÕPattern substitution, parametrized by substitution function for embedded expressions.µAAgda7Split patterns into (patterns, trailing with-patterns).¶AAgda1Get the tail of with-patterns of a pattern spine.·AAgdaConstruct the ŸA" of the given list (if not empty).+Return the view and the remaining patterns.ºAAgdaËAdd applicative patterns (non-projection / non-with patterns) to the right.»AAgdaAdd with-patterns to the right.½AAgdaCombine a pattern and the value computed from its subpatterns.¦AAgdapre : Modification before recursion.Agdapost: Modification after recursion.«AAgdapre : Modification before recursion.¬AAgdapost: Modification after recursion.´AAgda&Substitution function for expressions.Agda(Parallel) substitution.AgdaInput pattern.%œAžA�AŸA¡A¢A A£A¦A¥A¤A§A¨A©AªA«A¬A­A®A¯A°A±A²A³A´AµA¶A·A¸A¹AºA»A¼A½A¾A¿AÀA%©A§A¨A£A¦A¥A¤AªA«A¬A­A®A¯A°A±A²A³A´AµA¶AŸA¡A¢A A·AœAžA�A¸A¹AºA»A¼A½A¾A¿AÀA� Safe-Inferred'!$%&()./0145789:;ÀÁÂÃÄÆÈËÐÓÖØÙÛâãêßäÖAAgda Currying as b# witnesses the isomorphism between  Arrows as b and Products as -> bÏ. It is defined as a type class rather than by recursion on a singleton for asØ so all of that these conversions are inlined at compile time for concrete arguments.ÜAAgdaUsing IsBase we can define notions of Domains and  CoDomains. which *reduce* under positive information IsBase t ~ 'True even though the shape of t is not formally exposedÝAAgdaIsBase t is 'True whenever t is *not* a function space.ßAAgdaArrows [a1,..,an] r corresponds to a1 -> .. -> an -> r | Products [a1,..,an] corresponds to (a1, (..,( an, ())..))äAAgda Version of FoldrÖ taking a defunctionalised argument so that we can use partially applied functions.åAAgdaOn ListsæAAgda On BooleansçAAgdaAll p as ensures that the constraint p is satisfied by all the types in asÚ. (Types is between scare-quotes here because the code is actually kind polymorphic)ÒAÓAÔAÕAÖAØA×AÙAÚAÛAÜAÝAÞAßAàAáAâAãAäAåAæAçAçAæAåAäAãAâAáAàAßAÞAÝAÜAÛAÚAÙAÖAØA×AÕAÔAÓAÒAž Safe-Inferred$!$%&().0145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêá/êAAgdaÝA known boolean is one we can obtain a singleton for. Concrete values are trivially known.ìAAgda"Singleton for type level booleans.êAëAìAîAíAïAðAìAîAíAïAêAëAðAŸ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêå óAAgdaLike  Bifunctor, but preserving sharing.÷AAgdaLike Ê~, but preserving sharing.þAAgdaThe ChangeT monad transformer.ÿAAgdaThe class of change monads.‚BAgdaRun a þA0 computation, returning result plus change flag.€AgdaRun a þA% computation, but ignore change flag.ƒBAgdaMap a þA( computation (monad transformer action).„BAgdaBlindly run an updater.…BAgdaRun a üA0 computation, returning result plus change flag.†BAgdaBlindly run an updater.‡BAgdaMark a computation as dirty.‰BAgdaÆReplace result of updating with original input if nothing has changed.ÀAgdaEval an updater (using ‰B).‹BAgda8A mock change monad. Always assume change has happened.ùAAgda = sharing . updater1€BAgda-Mark computation as having changed something.óAôAõAöA÷AøAùAúAûAüAýAþAÿA€B�B‚BƒB„B…B†B‡BˆB‰BþA‚BƒBýA„BüAÿA€B�B…BûA‰B†B‡BˆB÷AøAùAúAóAôAõAöA  Safe-Inferred#!$%&().145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêë˜Ä€AgdaMake a declaration private.*Andreas, 2012-11-17: Mark computation as ‡Bö if there was a declaration that could be privatized. If no privatization is taking place, we want to complain about ©-."Alternatively, we could only flag ‡B6 if a non-private thing was privatized. Then, nested private+s would sometimes also be complained about.Å€AgdaMake a declaration abstract.Mark computation as ‡B÷ if there was a declaration that could be made abstract. If no abstraction is taking place, we want to complain about §-."Alternatively, we could only flag ‡B7 if a non-abstract thing was abstracted. Then, nested abstract+s would sometimes also be complained about.Æ€Agda’Check that declarations in a mutual block are consistently equipped with MEASURE pragmas, or whether there is a NO_TERMINATION_CHECK pragma.Ç€Agda Replace (DataRecÙFun)Sigs with Axioms for postulated names The first argument is a list of axioms only.˜BAgdaäMain. Fixities (or more precisely syntax declarations) are needed when grouping function clauses.™BAgda(Approximately) convert a Ð, back to a list of Ì&s.šBAgdaHas the Ð, a field of type ø?›BAgdaContents of a where& clause are abstract if the parent is.Ç€Agda(Lone signatures to be turned into AxiomsAgdaDeclarations containing themAgda+In the output, everything should be definedÌÉ,Ê,Ë,Ì,Î,Ð,Ñ,Ò,Ó,Ô,Õ,Ö,×,Ø,Ù,Ú,Û,Ü,Ý,Þ,ß,à,á,â,ã,ä,å,ˆ-‰-Š-‹-Œ-�-Ž-�-�-‘-’-“-”-•-–-—-˜-™-š-›-œ-�-ž-Ÿ- -¡-¢-£-¤-¥-¦-§-¨-©-ª-«-­-¬-¼-½-¾-¿-À-Â-å-è-˜B™BšBÌÐ,Ñ,Ò,Ó,Ô,Õ,Ö,×,Ø,Ù,Ú,Û,Ü,Ý,Þ,ß,à,á,â,ã,ä,å,Ì,Ë,É,Ê,¼-½-¾-¿-ª-«-­-¬-ˆ-‰-Š-‹-Œ-�-Ž-�-�-‘-’-“-”-•-–-—-˜-™-š-›-œ-�-ž-Ÿ- -¡-¢-£-¤-¥-¦-§-¨-©-Â-å-è-˜B™BšBÎ,À- Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêí!fghijklmnopqr§B¨B§Bgflprjohimknq¨B¡ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêõ*ªBAgda e.g. x + 5«BAgdaa number or infinity¬BAgdaâA solution assigns to each flexible variable a size expression which is either a constant or a v + n for a rigid variable v.­BAgda"A matrix with row descriptions in b and column descriptions in c.²BAgda6The Graph Monad, for constructing a graph iteratively.µBAgdaScope for each flexible var.¶BAgdaNode labels to node numbers.·BAgdaNode numbers to node labels.¸BAgdaNumber of nodes n.¹BAgdaThe edges (restrict to [0..n[).»BAgda%A constraint is an edge in the graph.½BAgdaFor  Arc v1 k v2 at least one of v1 or v2 is a MetaV+ (Flex), the other a MetaV or a Var (Rigid). If k <= 0 this means suc^(-k) v1 <= v2 otherwise v1 <= suc^k v3.¾BAgda3Which rigid variables a flex may be instatiated to.ÅBAgdaÑNodes of the graph are either - flexible variables (with identifiers drawn from Int*), - rigid variables (also identified by Intn2 to be at most k(. Also adds nodes if not yet present.ÜBAgda sizeRigid r n. returns the size expression corresponding to r + n5©B«BªB¬B­B±B°B¯B®B²B³B¸B·BµB¶B¹B´BºB»B½B¼B¾B¿BÀBÁBÂBÄBÃBÅBÇBÆBÈBÉBÊBËBÌBÍBÎBÏBÐBÑBÒBÓBÔBÕBÖB×BØBÙBÚBÛBÜBÝB5ÌBÍBËBÎBÈBÉBÊBÏBÅBÇBÆBÂBÄBÃBÁBÀB¿B¾BÐBÑB»B½B¼BºBÒB³B¸B·BµB¶B¹B´BÓB²BÔBÕBÖB×BØBÙB­B±B°B¯B®B¬BÚBÛB©B«BªBÜBÝB¢ Safe-Inferred"!$%&.0145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêöWëBíBìBîBïBëBíBìBîBïB£ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêöà óBôBõBöB÷BüBûBúBùBøB ÷BüBûBúBùBøBõBöBóBôB� Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê÷DȀɀʀˀ̀̀΀Ï€¤ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêø�…CAgdaThe version of Agda.†CAgda‚This package name. This is mainly intended for use in the test suites to filter ephemeral hash-fingerprinted package names like !Agda-2.6.2-5ceeWeguf1QFMaHLput4zw.…C†C…C†C¥ Safe-Inferred$!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêù;‰CAgda?Information about current git commit, generated at compile timeˆC‰CˆC‰C¦ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêŠCAgdaÙLibrary names are structured into the base name and a suffix of version numbers, e.g.  mylib-1.2.3". The version suffix is optional.ŒCAgdaActual library name.�CAgda�Major version, minor version, subminor version, etc., all non-negative. Note: a priori, there is no reason why the version numbers should be Ints.ŽCAgdaRaise collected  LibErrors as exception.ЀAgdaGet the path to ~/.agda1 (system-specific). Can be overwritten by the AGDA_DIR environment variable.ó(This is not to be confused with the directory for the data files that Agda needs (e.g. the primitive modules).)�CAgdaßReturns the absolute default lib dir. This directory is used to store the Primitive.agda file.Ñ€AgdaThe ~.agda librariesÄ file lists the libraries Agda should know about. The content of  libraries is a list of paths to  .agda-lib files."Agda honors also version specific  libraries files, e.g. libraries-2.6.0.defaultLibraryFiles gives a list of all  libraries) files Agda should process by default.Ò€AgdaThe  defaultsFileÁ contains a list of library names relevant for each Agda project.Ó€AgdaThe ~.agda executablesÆ file lists the executables Agda should know about. The content of  executables# is a list of paths to executables."Agda honors also version specific  executables files, e.g. executables-2.6.0.defaultExecutablesFiles gives a list of all  executables# Agda should process by default.Ô€Agda!Find project root by looking for  .agda-lib files.ÅIf there are none, look in the parent directories until one is found.�CAgdaGet project root‘CAgdaGet the contents of  .agda-lib! files in the given project root.’CAgda:Get dependencies and include paths for given project root: Look for  .agda-lib files according to findAgdaLibFiles?. If none are found, use default dependencies (according to defaults/ file) and current directory (project root).Õ€Agda/Return list of libraries to be used by default. None if the defaults file does not exist.Ö€AgdaReturns the path of the  libraries1 file which lists the libraries Agda knows about.Note: file may not exist.“CAgda9Parse the descriptions of the libraries Agda knows about.Returns none if there is no  libraries file.×€AgdaParse the given library files.Ø€Agda.Remove trailing white space and line comments.Ù€AgdaReturns the path of the  executables; file which lists the trusted executables Agda knows about.Note: file may not exist.”CAgda0Return the trusted executables Agda knows about.Returns none if there is no  executables file.Ú€Agda Parse the  executables file.•CAgda6Get all include pathes for a list of libraries to use.Û€AgdafindLib x libs retrieves the matches for x from list libs. Case x is unversioned: If x is contained in libsé, then that match is returned. Otherwise, the matches with the highest version number are returned.Case xÈ is versioned: the matches with the highest version number are returned.Examples, see –C.–CAgdaGeneralized version of Û€ for testing. ÄfindLib' id "a" [ "a-1", "a-02", "a-2", "b" ] == [ "a-02", "a-2" ] †findLib' id "a" [ "a", "a-1", "a-01", "a-2", "b" ] == [ "a" ] findLib' id "a-1" [ "a", "a-1", "a-01", "a-2", "b" ] == [ "a-1", "a-01" ] findLib' id "a-2" [ "a", "a-1", "a-01", "a-2", "b" ] == [ "a-2" ] findLib' id "c" [ "a", "a-1", "a-01", "a-2", "b" ] == []Ü€Agdax Ü€ y if x and y have the same vvBase and either x5 has no version qualifier or the versions also match.—CAgdaÁSplit a library name into basename and a list of version numbers. óversionView "foo-1.2.3" == VersionView "foo" [1, 2, 3] versionView "foo-01.002.3" == VersionView "foo" [1, 2, 3]$Note that because of leading zeros,  versionView is not injective. (unVersionView . versionView would produce a normal form.)˜CAgdaPrint a  VersionView , inverse of  versionView (modulo leading zeros).Ô€Agda2Candidate (init: the directory Agda was called in)AgdaActual root and  .agda-lib files for this projectÝ€Agda2Candidate (init: the directory Agda was called in)AgdaActual root and  .agda-lib files for this project’CAgda Project root.AgdaUse defaults if no  .agda-lib file exists for this project?Agda The returned LibNames are all non-empty strings.Ö€AgdaOverride the default  libraries file?“CAgdaOverride the default  libraries file?Agda-Content of library files. (Might have empty LibNames.)×€AgdaName of  libraries file for error reporting.Agda/Library files paired with their line number in  libraries.Agda-Content of library files. (Might have empty LibNames.)”CAgda Content of  executables files.•CAgda libraries file (error reporting only).AgdaLibraries Agda knows about.Agda>(Non-empty) library names to be resolved to (lists of) pathes.Agda2Resolved pathes (no duplicates). Contains "." if  [LibName] does.&þ!‹"Œ"�"Ž"�"�"‘"“"”"•"–"—"˜"™"š"›"œ"�"ž"£"¨"°"ŠC‹CŒC�CŽC�C�C‘C’C“C”C•C–C—C˜C&�C’C“C”C•C‘C�C¨"“"”"•"–"—"˜"™"£"þ!ŽC‹"Œ"�"Ž"�"�"‘"°"š"›"œ"�"ž"ŠC‹CŒC�C—C˜C–C‚ Safe-Inferred#!$%&.0145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê!;-›CAgdaf :: Flag optsÏ is an action on the option record that results from parsing an option. f optsà produces either an error message or an updated options record�CAgdaThe options from an OPTIONS pragma.±In the future it might be nice to switch to a more structured representation. Note that, currently, there is not a one-to-one correspondence between list elements and options.¡CAgda%Options which can be set in a pragma.­CAgdaÉCut off structural order comparison at some depth in termination checker?¸CAgda+irrelevant levels, irrelevant data matchingºCAgda(Allow definitions by copattern matching?»CAgda0Is pattern matching allowed in the current file?¾CAgda2Perform the forcing analysis on data constructors?¿CAgda6Perform the projection-likeness analysis on functions?ÀCAgda$Can rewrite rules be added and used?ÃCAgdaÎShould we speculatively unify function applications as if they were injective?ÄCAgda$Should system generated projections  ProjSystem0 be printed postfix (True) or prefix (False).ÅCAgdaæShould case splitting replace variables with dot patterns (False) or keep them as variables (True).ÈCAgda?Should instance search consider instances with qualified names?ÌCAgda:Should conversion checker use syntactic equality shortcut?ÐCAgdaÐCount extended grapheme clusters rather than code points when generating LaTeX.ÑCAgdaÓAutomatic compile-time inlining for simple definitions (unless marked NOINLINE).ÓCAgda+Use the Agda abstract machine (fastReduce)?ÔCAgda(Use call-by-name instead of call-by-needÕCAgda"Check confluence of rewrite rules?ÖCAgda)Can we split on a (@flat x : A) argument?×CAgdaÂShould every top-level module start with an implicit statement ,open import Agda.Primitive using (Set; Prop)?ÙCAgdaìShow identity substitutions when pretty-printing terms (i.e. always show all arguments of a metavariable)áCAgda-Use this (if Just) instead of .agda/librariesâCAgdaUse ~.agdadefaultsãCAgdalook for .agda-lib filesäCAgda2Map names of trusted executables to absolute pathsèCAgdaAgda REPL (-I).ìCAgda2In the absence of a path the project root is used.òCAgdaËShould the top-level module only be scope-checked, and not type-checked?öCAgdaƒMap a function over the long options. Also removes the short options. Will be used to add the plugin name to the plugin options.üCAgda-Checks that the given options are consistent.ýCAgda x, (i=1) -> y]óbAgdaA telescope split in two.÷bAgda;The permutation takes us from the original telescope to firstPart ++ secondPart.øbAgda(Flatten telescope: (“ : Tel) -> [Type “]ùbAgdaÙOrder a flattened telescope in the correct dependeny order: “ -> Permutation (“ -> “~)Since reorderTel tel( uses free variable analysis of type in tel, the telescope should be £ad.ûbAgdaÜUnflatten: turns a flattened telescope into a proper telescope. Must be properly ordered.übAgdaÊRename the variables in the telescope to the given names Precondition: size xs == size tel.ýbAgda(Get the suggested names from a telescope‚cAgda A variant of �c… which takes the argument names (and the argument info) from the first telescope and the variable names from the second telescope.6Precondition: the two telescopes have the same length.ƒcAgda.Split the telescope at the specified position.„cAgda³Permute telescope: permutes or drops the types in the telescope according to the given permutation. Assumes that the permutation preserves the dependencies in the telescope.3For example (Andreas, 2016-12-18, issue #2344): ø tel = (A : Set) (X : _18 A) (i : Fin (_m_23 A X)) tel (de Bruijn) = 2:Set, 1:_18 0, 0:Fin(_m_23 1 /0) flattenTel tel = 2:Set, 1:_18 0, 0:Fin(_m_23 1 0) |- [ Set, _18 2, Fin (_m_23 2 •1) ] perm = 0,1,2 -> 0,1 (picks the first two) renaming _ perm = [var 0, var 1, error] -- THE WRONG RENAMING! renaming _ (flipP perm) = [error, var 1, var 0] -- The correct renaming! apply to flattened tel = ... |- [ Set, _18 1, Fin (_m_23 1 60) ] permute perm it = ... |- [ Set, _18 11 ] unflatten (de Bruijn) = 1:Set, 0: _18 90 unflatten = (A : Set) (X : _18 A) …cAgda‡Recursively computes dependencies of a set of variables in a given telescope. Any dependencies outside of the telescope are ignored.†cAgdaËComputes the set of variables in a telescope whose type depend on one of the variables in the given set (including recursive dependencies). Any dependencies outside of the telescope are ignored.‡cAgdaÞSplit a telescope into the part that defines the given variables and the part that doesn't.See …†.ˆcAgdaüAs splitTelescope, but fails if any additional variables or reordering would be needed to make the first part well-typed.‰cAgda‚Try to instantiate one variable in the telescope (given by its de Bruijn level) with the given value, returning the new telescope and a substitution to the old one. Returns Nothing if the given value depends (directly or indirectly) on the variable.ŠcAgdaÑTry to eta-expand one variable in the telescope (given by its de Bruijn level)‹cAgdatelViewUpTo n t takes off the first n function types of t. Takes off all if n < 0.ŒcAgdatelViewUpTo' n p t takes off $t$ the first n (or arbitrary many if n < 0-) function domains as long as they satify p.ŽcAgdatelViewUpToPath n t takes off $t$ the first n (or arbitrary many if n < 0!) function domains or Path types.�cAgdaLike telViewUpToPath but also returns the Boundaryá expected by the Path types encountered. The boundary terms live in the telescope given by the TelViewã. Each point of the boundary has the type of the codomain of the Path type it got taken from, see  fullBoundary.‘cAgda8(TelV “ b, [(i,t_i,u_i)]) <- telViewUpToPathBoundary n aè Input: ” ¢E a Output: ”“ ¢E b ”“ ¢E i : I ”“ ¢E [ (i=0) -> t_i; (i=1) -> u_i ] : b’cAgda9(TelV “ b, [(i,t_i,u_i)]) <- telViewUpToPathBoundaryP n aç Input: ” ¢E a Output: ”.“ ¢E b ”.“ ¢E T is the codomain of the PathP at variable i ”.“ ¢E i : I ”.“ ¢E [ (i=0) -> t_i; (i=1) -> u_i ] : T Useful to reconstruct IApplyP patterns after teleNamedArgs “.”cAgdateleElimsB args bs = esË Input: ”.“ ¢E args : “ ”.“ ¢E T is the codomain of the PathP at variable i ”.“ ¢E i : I ”.“ ¢E bs = [ (i=0) -> t_i; (i=1) -> u_i ] : T Output: ”.“ | PiPath “ bs A ¢E es : A˜cAgda'returns Left (a,b) in case the type is Pi a b or  PathP b _ _ assumes the type is in whnf.žcAgdaDecomposing a function type.ŸcAgdaIf the given type is a Piõ, pass its parts to the first continuation. If not (or blocked), pass the reduced type to the second continuation. cAgdaIf the given type is a Piõ, pass its parts to the first continuation. If not (or blocked), pass the reduced type to the second continuation.¡cAgda&If the given type is blocked or not a Pi;, pass it reduced to the first continuation. If it is a Pi,, pass its parts to the second continuation.¢cAgda&If the given type is blocked or not a Pi;, pass it reduced to the first continuation. If it is a Pi,, pass its parts to the second continuation.¤cAgdaCompute type arity¥cAgdaïStrips all hidden and instance Pi's and return the argument telescope and head definition name, if possible.¦cAgda:Register the definition with the given type as an instance¨cAgda‘Try to solve the instance definitions whose type is not yet known, report an error if it doesn't work and return the instance table otherwise.‡cAgdaA set of de Bruijn indices.AgdaOriginal telescope.Agda firstPart mentions the given variables,  secondPart not.ˆcAgdaA list of de Bruijn indicesAgdaThe telescope to splitAgda firstPart5 mentions the given variables in the given order,  secondPart contains all other variables‰cAgda¢E “Agda!“ ¢E var k : A de Bruijn _level_Agda “ ¢E u : AˆZ‰ZŠZ‹Zëbðbïbîbíbìbñbòbób÷böbõbôbøbùbúbûbübýbþbÿb€c�c‚cƒc„c…c†c‡cˆc‰cŠc‹cŒc�cŽc�c�c‘c’c“c”c•c–c—c˜c™cšc›cœc�cžcŸc c¡c¢c£c¤c¥c¦c§c¨cÂøbùbúbûbübýbþbÿb€c�c‚cƒc„c…c†cób÷böbõbôb‡cˆc‰cŠc‹Z‹cŒc�cŽcòbñb�c�c‘c’c“c”c•c–c—c˜c™cšc›cœc�cžcŸc c¡c¢c£cˆZ‰ZŠZ¤cëbðbïbîbíbìb¥c¦c§c¨c½ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêE­ ™TAgda8Assorted warnings and errors to be displayed to the userœTAgdaÄClassifying warnings: some are benign, others are (non-fatal) errors�TAgda(warnings that will be turned into errorsžTAgdaõall warnings, including errors and benign ones Note: order of constructors is important for the derived Ord instance TAgda2Store a warning and generate highlighting from it.¨TAgda Raise every WARNING_ON_USAGE connected to a name.á€Agda;Should we only emit a single warning with this constructor.®TAgda;The only way to construct a empty WarningsAndNonFatalErrors°TAgdarunning the Parse monad™TšT›TœT�TžTŸT T¡T¢T£T¤T¥T¦T§T¨T©TªT«T¬T­T®T¯T°TŸT T¡T¢T£T¤T¦T§T¥T¨T©TªT«T¬TœT�TžT­T™TšT›T®T¯T°Tµ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêI1¿kAgda/Report a number of names that are not in scope.ÀkAgda.Suggest some corrections to a misspelled name.ÃkAgdaýIf there are several warnings, remove the unsolved-constraints warning in case there are no interesting constraints to list.ÄkAgda$Turns warnings, if any, into errors.ÅkAgdaÅDepending which flags are set, one may happily ignore some warnings.ÈkAgda8Collect all warnings that have accumulated in the state.¿kAgda Print range?Agda Correction suggestion generator.AgdaNames that are not in scope.ÀkAgdaNames in scope.Agda,Canonization function for similarity search.AgdaA name which is not in scope.Agda"did you mean" hint.ÜS¼k½k¾k¿kÀkÁkÂkÃkÄkÅkÆkÇkÈkÉkÊkÜS¼k½k¾k¿kÀkÁkÂkÃkÄkÅkÆkÇkÈkÉkÊkû Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêIɇhˆhämäm‡hˆhÇ Safe-Inferred#!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêîY¾�XAgdaPerforms void (noAbs) abstraction over telescope.ˆXAgdaApply Elims× while using the given function to report ill-typed redexes. Recursive calls for applyE and  applySubst happen at type t/ to propagate the same strategy to subtrees.‰XAgdaIf $v$ is a record value, canProject f v returns its field f.ŠXAgdaEliminate a constructed term.‹XAgdadefApp f us vs applies Def f us to further arguments vs/, eliminating top projection redexes. If usà is not empty, we cannot have a projection redex, since the record argument is the first one.ŽXAgda  (x:A)->B(x) ŽX [u] = B(u)çPrecondition: The type must contain the right number of pis without having to perform any reduction.piApply$ is potentially unsafe, the monadic piApplyM is preferable.’XAgdaIf permute À : [a]“ -> [a]”, then ,applySubst (renaming _ À) : Term “ -> Term ”“XAgdaIf permute À : [a]“ -> [a]”, then +applySubst (renamingR À) : Term ” -> Term “”XAgdaÎThe permutation should permute the corresponding context. (right-to-left list)œXAgda  projDropParsApply proj o args = šL proj o `½;` argsóThis function is an optimization, saving us from construction lambdas we immediately remove through application.�XAgdaìTakes off all exposed function domains from the given type. This means that it does not reduce to expose Pi-types.žXAgdatelView'UpTo n t takes off the first n exposed function types of t#. Takes off all (exposed ones) if n < 0.ŸXAgdaTurn a typed binding (x1 .. xn : A) into a telescope.£XAgdaTurn a typed binding (x1 .. xn : A) into a telescope.§XAgda )mkPi dom t = telePi (telFromList [dom]) t¬XAgda)Uses free variable analysis to introduce Ï7 bindings.­XAgdaEverything will be an Í7.®XAgdaîOnly abstract the visible components of the telescope, and all that bind variables. Everything will be an Í7! Caution: quadratic time!¯XAgdaÝAbstract over a telescope in a term, producing lambdas. Dumb abstraction: Always produces Í7, never Ï7.$The implementation is sound because À7 does not use Ï7.°XAgdaGiven arguments vs : tel= (vector typing), extract their individual types. Returns Nothing is tel is not long enough.±XAgda˜In compiled clauses, the variables in the clause body are relative to the pattern variables (including dot patterns) instead of the clause telescope.²XAgdaunivSort' univInf s gets the next higher sort of s), if it is known (i.e. it is not just  UnivSort s).Precondition: s is reduced¶XAgdaReturns Nothing4 for unknown (meta) sorts, and otherwise returns  Just (b,f) where b indicates smallness and f fibrancy. I.e., b is True# for (relatively) small sorts like Set l and Prop l, and instead b is False for large sorts such as SetÉ.¸XAgdaÑCompute the sort of a function type from the sorts of its domain and codomain.ºXAgdaËCompute the sort of a pi type from the sorts of its domain and codomain.½XAgdaGiven two levels a and b , compute a ”E b" and return its canonical form.ÂXAgdaúEquality of binders relies on weakening which is a special case of renaming which is a special case of substitution.ÅXAgda Syntactic Õ7 equality, ignores stuff below DontCare and sharing.ÇXAgda Syntactic Ç7$ equality, ignores sort annotations.ƒYAgdatel ¢E (“ ¢E lhs ¦C rhs : t) becomes tel, “ ¢E lhs ¦C rhs : t)Ü we do not need to change lhs, rhs, and t since they live in “. See 'Abstract Clause'.¡YAgda)Make sure we only drop variable patterns.÷å6æ6ì6ç6è6é6ê6ë6ò9õ9ó9ô9´;µ;¶;·;¸;¹;¸;º;»;¼;½;¾;¿;À;Á;Â;Ã;Ä;Å;Æ;Ç;È;É;Ê;Ë;Ì;Í;Î;Ï;Ð;Ñ;Ò;Ó;Ô;Õ;Ö;×;Ø;Ù;Ú;Û;Ü;Ý;Þ;ß;�X‚XƒX†X„X…X‡XˆX‰XŠX‹XŒX�XŽX�X�X‘X’X“X”X•X–X—X˜X™XšX›XœX�XžXŸX X¡X¢X£X¤X¥X¦X§X¨X©XªX«X¬X­X®X¯X°X±X²X³X´XµX¶X·X¸X¹XºX»X¼X½X¾XÆ�X‚XƒX†X„X…X‡XˆX‰XŠX‹XŒX�XŽX�X�X‘X’X“X”X•X–X—X˜X™XšX›XœX�XžXŸX X¡X¢X£X¤X¥X¦X§X¨X©XªX«X¬X­X®X¯X°X±X²X³X´XµX¶X·X¸X¹XºX»X¼X½X¾Xæ6ì6ç6è6é6ê6ë6å6Æ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêaß âWAgdaSets the pragma options.ãWAgdaÐSets the command line options (both persistent and pragma options are updated).˜Relative include directories are made absolute with respect to the current working directory. If the include directories have changed (thus, they are Œ now, and were previously Ž something>), then the state is reset (completely, see setIncludeDirs) ./An empty list of relative include directories (Œ []) is interpreted as ["."].íWAgdaDisable display forms.îWAgdaDisable display forms.ïWAgda#Check if display forms are enabled.ðWAgdaGets the include directories.Precondition: ßC must be nonempty (i.e. ãW must have run).ñWAgdaÍMakes the given directories absolute and stores them as include directories.ðIf the include directories change, then the state is reset (completely, except for the include directories and íJ). An empty list is interpreted as ["."].øWAgdaíSwitch on printing of implicit and irrelevant arguments. E.g. for reification in with-function generation. Restores all ¡C> after completion. Thus, do not attempt to make persistent ¡C changes in a øW bracket.úWAgdaChange ¡C* for a computation and restore afterwards.€XAgda Returns the ¨ currently in effect.äWAgda%The base directory of relative paths.èWAgda%The base directory of relative paths.êWAgda%The base directory of relative paths.ñWAgdaNew include directories.Agda%The base directory of relative paths.âWãWäWåWæWçWèWéWêWëWìWíWîWïWðWñWòWóWôWõWöW÷WøWùWúWûWüWýWþWÿW€XâWãWäWåWæWçWèWéWêWëWìWíWîWïWðWñWòWóWôWõWöW÷WøWùWúWûWüWýWþWÿW€XÁ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêlú"ŒVAgda:Resets the non-persistent part of the type checking state.�VAgda&Resets all of the type checking state. Keep only å* and backend information.ŽVAgdaRestore ”! after performing subcomputation.In contrast to ‡, the å** info from the subcomputation is saved.�VAgdaSame as ŽVÉ but also returns the state in which we were just before reverting it.�VAgdaSame as ŽV but keep all warnings.‘VAgda:Allow rolling back the state changes of a TCM computation.“VAgdaA fresh TCM instance.ÏThe computation is run in a fresh state, with the exception that the persistent state is preserved. If the computation changes the state, then these changes are ignored, except for changes to the persistent state. (Changes to the persistent state are also ignored if errors other than type errors or IO exceptions are encountered.)—VAgda Lens for ïJ.™VAgdaGet the current scope.šVAgdaSet the current scope.›VAgda;Modify the current scope without updating the inverse maps.œVAgdaModify the current scope.�VAgda Get a part of the current scope.žVAgda&Run a computation in a modified scope.ŸVAgda#Run a computation in a local scope. VAgdaSame as ŸV-, but discard the scope from the computation.¡VAgda2Discard any changes to the scope by a computation.¢VAgda Scope error.¤VAgdaDebug print the scope.¨VAgda‰Update a possibly imported definition. Warning: changes made to imported definitions (during type checking) will not persist outside the current module. This function is currently used to update the compiled representation of a function during compilation.ªVAgdaÊRun some computation in a different signature, restore original signature.»VAgdaÚSet the top-level module. This affects the global module id of freshly generated names.¼VAgdaçUse a different top-level module for a computation. Used when generating names for imported modules.ÄVAgda Lens for ÄK.ÆVAgda,Get both local and imported pattern synonymsÉVAgdaLens getter for å* from ”.ÊVAgda Lens map for å*.ËVAgdaLens getter for å* from ‘.ÌVAgdaLens modify for å*.ÍVAgda>Look through the signature and reconstruct the instance table.ÎVAgda Lens for åK.ÒVAgda4Remove all instances whose type is still unresolved.ÓVAgda/Add an instance whose type is still unresolved.ÔVAgdaAdd instance to some `class'.ÔVAgdaName of the instance.AgdaName of the class.̉V‹VŠVŒV�VŽV�V�V‘V’V“V”V•V–V—V˜V™VšV›VœV�VžVŸV V¡V¢V£V¤V¥V¦V§V¨V©VªV«V¬V­V®V¯V°V±V²V³V´VµV¶V·V¸V¹VºV»V¼V½V¾V¿VÀVÁVÂVÃVÄVÅVÆVÇVÈVÉVÊVËVÌVÍVÎVÏVÐVÑVÒVÓVÔVÌŒV�VŽV�V�V‰V‹VŠV‘V’V“V”V•V–V—V˜V™VšV›VœV�VžVŸV V¡V¢V£V¤V¥V¦V§V¨V©VªV«V¬V­V®V¯V°V±V²V³V´VµV¶V·V¸V¹VºV»V¼V½V¾V¿VÀVÁVÂVÃVÄVÅVÆVÇVÈVÉVÊVËVÌVÍVÎVÏVÐVÑVÒVÓVÔV Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêu‚úRAgda?Debug print some lines if the verbosity level for the given õC is at least ôC.Note: In the presence of OverloadedStrings , just @( traceS key level "Literate string"  gives an Ambiguous type variable error in  GHC@. Use the legacy functions ŽS and �S instead then.üRAgda?Debug print some lines if the verbosity level for the given õC is at least ôC.Note: In the presence of OverloadedStrings , just @) reportS key level "Literate string"  gives an Ambiguous type variable error in  GHC@. Use the legacy functions ‰S and ‹S instead then.€SAgda=Print brackets around debug messages issued by a computation.‚SAgda.Check whether we are currently debug printing.ƒSAgda;Flag in a computation that we are currently debug printing.‡SAgda%Print a debug message if switched on.ˆSAgda/During printing, catch internal errors of kind ª and print them.‰SAgda#Conditionally println debug string.‹SAgdaConditionally render debug s and print it.ŒSAgda(Debug print the result of a computation.�SAgdaConditionally render debug s, print it, and then continue.”SAgda5Check whether a certain verbosity level is activated.-Precondition: The level must be non-negative.•SAgdaÃCheck whether a certain verbosity level is activated (exact match).–SAgdaÊRun a computation if a certain verbosity level is activated (exact match).˜SAgdaExpected a type to be an application of a particular datatype.»DAgdaconstructor, datatype¼DAgdaDatatype, constructors.½DAgdaconstructor, type¾DAgdaåThe left hand side of a function definition has a hidden argument where a non-hidden was expected.¿DAgda9Expected a non-hidden function and found a hidden lambda.ÀDAgdaËA function is applied to a hidden argument where a non-hidden was expected.ÁDAgda‡A function is applied to a hidden named argument it does not have. The list contains names of possible hidden arguments at this point.ÂDAgda0Wrong user-given relevance annotation in lambda.ÃDAgda/Wrong user-given quantity annotation in lambda.ÄDAgda/Wrong user-given cohesion annotation in lambda.ÅDAgdaÀThe given quantity does not correspond to the expected quantity.ÆDAgdaFailed to apply injectivity to constructor of indexed datatypeÈEAgda=Can't solve equation because variable occurs in (type of) lhsÉEAgda=Can't solve reflexive equation because --without-K is enabledÊEAgda?Can't solve equation because solution modality is less "usable"ÎEAgdaËError when splitting a pattern variable into possible constructor patterns.ÏEAgdaNeither data type nor record.ÐEAgda'Type could not be sufficiently reduced.ÑEAgda8Data type, but in erased position. If the boolean is â~Ê, then the reason for the error is that the K rule is turned off.ÒEAgdaôSplit on codata not allowed. UNUSED, but keep! -- | NoRecordConstructor Type -- ^ record type, but no constructorÔEAgdaCopattern split with a catchallÕEAgda-We do not know the target type of the clause.ÖEAgda!Target type is not a record type.ÙEAgdaBlocking metavariable (if any)ÚEAgda Constructor.ÛEAgdaContext for indices.ÜEAgda,Inferred indices (from type of constructor).ÝEAgda)Expected indices (from checking pattern).ÞEAgda$Reason(s) why unification got stuck.ßEAgdaÍInformation about a mutual block which did not pass the termination checker.áEAgdaÚThe functions which failed to check. (May not include automatically generated functions.)âEAgdaThe problematic call sites.ãEAgdaInformation about a call.åEAgdaTarget function name.æEAgdaRange of the target function.çEAgda+To be formatted representation of the call.éEAgdaÉLocation in the internal Agda source code location where the error raisedêEAgda"Range where the warning was raisedëEAgdaThe warning itselfìEAgdaÄThe warning printed in the state and environment where it was raisedíEAgda*Should the warning be affected by caching.ïEAgdaÀEach redundant field comes with a range of associated dead code.ðEAgda…Record type, fields not supplied by user, non-fields but supplied. The redundant fields come with a range of associated dead code.óEAgda4`UnreachableClauses f rs` means that the clauses in f' whose ranges are rs are unreachableôEAgda!`CoverageIssue f pss` means that pss are not covered in f÷EAgdaDo not use directly with warningøEAgdaDo not use directly with warningùEAgdaDo not use directly with warningüEAgdaÁIn `OldBuiltin old new`, the BUILTIN old has been replaced by newýEAgdaIf the user wrote just {-# REWRITE #-}.þEAgda An empty where block is dead code.ÿEAgdaÅIf the user wrote something other than an unqualified name in the as clause of an import statement. The Ý$ gives optionally extra explanation.€FAgdaIf a renamingô import directive introduces a name or module name clash in the exported names of a module. (See issue #4154.)�FAgdaThe  'pattern'5 declaration is useless in the presence of either  coinductive or  eta-equality. Content of Ý! is "coinductive" or "eta", resp.‚FAgdaÑIf the user opens a module public before the module header. (See issue #2377.)ƒFAgda Names in À5 directive that don't hide anything imported by a ¿ directive.†FAgdaûAn instance was declared with an implicit argument, which means it will never actually be considered by instance search.‡FAgdaýThe type of an instance argument doesn't end in a named or variable type, so it will never be considered by instance search.ˆFAgdaÖAs InstanceWithExplicitArg, but for local bindings rather than top-level instances.‰FAgda&The --inversion-max-depth was reached.ŠFAgdaÜA coinductive record was declared but neither --guardedness nor --sized-types is enabled.‹FAgda'Harmless generic warning (not an error)ŒFAgda=Generic error which doesn't abort proceedings (not a warning)�FAgda:Generic warning when code is useless and thus ignored. õ  is for dead code highlighting.�FAgdaUnsafe OPTIONS.™FAgdaETA pragma is unsafe.œFAgda)`DeprecationWarning old new version`: old is deprecated, use new( instead. This will be an error in Agda version.�FAgdaÀUser-defined warning (e.g. to mention that a name is deprecated)žFAgda'Duplicate mentions of the same name in using directive(s).ŸFAgdaÐFixity of modules cannot be changed via renaming (since modules have no fixity). FAgdaÂSome imported names are not actually exported by the source module. The second argument is the names that could be exported. The third argument is the module names that could be exported.¡FAgdaÁImporting a file using an infective option into one which doesn't¢FAgdaÃImporting a file not using a coinfective option from one which does£FAgdaØConfluence checker found critical pair and equality checking resulted in a type error¤FAgdaÎConfluence checker got stuck on computing overlap between two rewrite rules¥FAgda+The global confluence checker found a term u that reduces to both v1 and v22 and there is no rule to resolve the ambiguity.¦FAgda+The global confluence checker found a term u that reduces to v, but v does not reduce to rho(u).§FAgda&COMPILE directive for an erased symbol¨FAgda&Out of scope error we can recover from©FAgda;The as-name in an as-pattern may not shadow a constructor (False) or pattern synonym name (True,), because this can be confusing to read.­FAgdaêRanges of checked arguments, where present. e.g. inserted implicits have no correponding abstract syntax.®FAgda&Checked and inserted arguments so far.¯FAgdaÍConstraints for the head so far, i.e. before applying the correponding elim.°FAgda%Type for the rest of the application.²FAgdaºA candidate solution for an instance meta is a term with its type. It may be the case that the candidate is not fully applied yet or of the wrong type, hence the need for the type.¼FAgdaÁAdd implicit arguments in the end until type is no longer hidden Û7.½FAgda!Do not append implicit arguments.¾FAgdaMakes  doExpandLastÐ have no effect. Used to avoid implicit insertion of arguments to metavariables.ÀFAgda6Abstract things in the current module can be accessed.ÁFAgda#No abstract things can be accessed.ÂFAgda$All abstract things can be accessed.ÅFAgdaThe Context is a stack of ÄFs.ÏFAgda=The path to the file that is currently being type-checked. é~9 if we do not have a file (like in interactive mode see  CommandLine).ÐFAgda4anonymous modules and their number of free variablesÑFAgdažThe module stack with the entry being the top-level module as Agda chases modules. It will be empty if there is no main module, will have a single entry for the top level module, or more when descending past the main module. This is used to detect import cycles and in some cases highlighting behavior. The level of a given module is not necessarily the same as the length, in the module dependency graph, of the shortest path from the top-level module; it depends on in which order Agda chooses to chase dependencies.ÒFAgda!the current (if any) mutual blockÓFAgda/are we inside the scope of a termination pragmaÔFAgda,are we inside the scope of a coverage pragmaÕFAgdaÅare we inside a make-case (if so, ignore forcing analysis in unifier)ÖFAgda>Are we currently in the process of solving active constraints?×FAgdaÏHave we stepped into the where-declarations of a clause? Everything under a where# will be checked with this flag on.ØFAgda&Are we working on types? Turned on by  workOnTypes.ÙFAgdaAre we allowed to assign metas?ÛFAgda¿When checking the typesignature of a public definition or the body of a non-abstract definition this is true. To prevent information about abstract things leaking outside the module.ÜFAgdaÜ7 component: Are we checking an irrelevant argument? (= IrrelevantÅ) Then top-level irrelevant declarations are enabled. Other value: Relevant*, then only relevant decls. are available.ç; component: Are we checking a runtime-irrelevant thing? (=è<) Then runtime-irrelevant things are usable. Other value:  Quantity1, runtime relevant.  QuantityÉ/ is not allowed here, see Bob Atkey, LiCS 2018.ÝFAgda£Are we currently case-splitting on a strict datatype (i.e. in SSet)? If yes, the pattern-matching unifier will solve reflexive equations even --without-K.ÞFAgda+Sometimes we want to disable display forms.àFAgda8Interactive highlighting uses this range rather than ßF.áFAgdaêWhat is the current clause we are type-checking? Will be recorded in interaction points in this clause.âFAgdawhat we're doing at the momentãFAgdaSet to ýF+ when imported modules are type-checked.åFAgda‚When type-checking an alias f=e, we do not want to insert hidden arguments in the end, because these will become unsolved metas.æFAgdaÝWe are reducing an application of this function. (For debugging of incomplete matches only.)çFAgdaÙDid we encounter a simplification (proper match) during the current reduction process?ëFAgda‹Injectivity can cause non-termination for unsolvable contraints (#431, #3067). Keep a limit on the nesting depth of injectivity uses.ìFAgdaWhen TrueÔ, the conversion checker will consider all term constructors as injective, including blocked function applications and metas. Warning: this should only be used when not assigning any metas (e.g. when envAssignMetas is False or when running pureEqualTerms.) or else we get non-unique meta solutions.íFAgdaWhen TrueÉ, types will be omitted from printed pi types if they can be inferred.îFAgdaWhen True›, throw away meta numbers and meta elims. This is used for reifying terms for feeding into the user's source code, e.g., for the interaction tactics solveAll.ïFAgda–Used by the scope checker to make sure that certain forms of expressions are not used inside dot patterns: extended lambdas and let-expressions.ñFAgdaòUntil we get a termination checker for instance search (#1743) we limit the search depth to ensure termination.óFAgdaÿ#3004: pattern lambdas with copatterns may refer to themselves. We don't have a good story for what to do in this case, but at least printing shouldn't loop. Here we keep track of which pattern lambdas we are currently in the process of printing.ôFAgda+Use call-by-need evaluation for reductions.õFAgdaèCheckpoints track the evolution of the context as we go under binders or refine it by pattern matching.öFAgdaÏKeeps the substitution from each previous checkpoint to the current context.÷FAgda"Should new metas generalized over.øFAgda(Values for used generalizable variables.ùFAgdaÒIs some backend active at the moment, and if yes, which? NB: we only store the Ž here, otherwise instance Data TCEnvË is not derivable. The actual backend can be obtained from the name via ÓK.úFAgdaëAre we currently computing the overlap between two rewrite rules for the purpose of confluence checking?ûFAgda Via stdout.üFAgdaBoth via files and via stdout.ÿFAgda†This includes both non-interactive highlighting and interactive highlighting of the expression that is currently being type-checked.ŽGAgda-Builtin of any kind. Type can be checked (Just t) or inferred (NothingÄ). The second argument is the hook for the verification function.�GAgda2When typechecking something of the following form:"instance x : _ x = y it's not yet known where to add xÑ, so we add it to a list of unresolved instances and we'll deal with it later.�GAgdaThe instance table is a Map' associating to every name of record data typepostulate its list of instances§GAgda8Highlight (interactively) if and only if the boolean is â~.³GAgda*Interaction command: show module contents.´GAgdaused by setCurrentRangeÈGAgda PrimitivesÎGAgda Controlling reduce.ÏGAgda:(Projection and) projection-like functions may be reduced.ÐGAgda'Functions marked INLINE may be reduced.ÑGAgda%Copattern definitions may be reduced.ÒGAgda6Non-recursive functions and primitives may be reduced.ÓGAgda(Even recursive functions may be reduced.ÔGAgdaReduce Õ7 terms.ÕGAgdaAllow  allReductionsÏ in types, even if not allowed at term level (used by confluence checker)ÖGAgda9Functions whose termination has not (yet) been confirmed.×GAgda0Functions that have failed termination checking.ÞGAgdaÎThree cases: 1. not reduced, 2. reduced, but blocked, 3. reduced, not blocked.äGAgda¢Did we encounter a simplifying reduction? In terms of CIC, that would be a iota-reduction. In terms of Agda, this is a constructor or literal pattern that matched. Just beta-reduction (substitution) or delta-reduction (unfolding of definitions) does not count as simplifying?êGAgda PostulateëGAgdaÀData or record type signature that doesn't yet have a definitionìGAgda&Generalizable variable (introduced in  generalize block)íGAgda Returned by  getConstInfo if definition is abstract.òGAgdaPrimitive or builtin functions.ôGAgda5Can transp for this postulate be constant? Set to True for bultins like String.÷GAgdaé~* while function is still type-checked. Just ccà after type and coverage checking and translation to case trees.øGAgdaõThe split tree constructed by the coverage checker. Needed to re-compile the clauses after forcing translation.ùGAgda2Intermediate representation for compiler backends.úGAgdaÜCovering clauses computed by coverage checking. Erased by (IApply) confluence checking(?)üGAgdaMutually recursive functions, datas and recordÅs. Does include this function. Empty list if not recursive. Nothing- if not yet computed (by positivity checker).þGAgda+Are the clauses of this definition delayed?ÿGAgda¨Is it a record projection? If yes, then return the name of the record type and index of the record argument. Start counting with 1, because 0 means that it is already applied to the record. (Can happen in module instantiation.) This information is used in the termination checker.�HAgda9Has this function been termination checked? Did it pass?‚HAgda†Is this function generated from an extended lambda? If yes, then return the number of hidden and non-hidden lambda-lifted argumentsƒHAgdaÚIs this a generated with-function? If yes, then what's the name of the parent function.„HAgdaNumber of parameters.…HAgdaNumber of indices.†HAgda(This might be in an instantiated module.‡HAgdaÇConstructor names , ordered according to the order of their definition.‰HAgdaMutually recursive functions, datas and recordÁs. Does include this data type. Empty if not recursive. Nothing- if not yet computed (by positivity checker).‹HAgda+Path constructor names (subset of dataCons)ŒHAgdaNumber of parameters.�HAgda‰Was this record type created by a module application? If yes, the clause is its definition (linking back to the original record type).ŽHAgdaConstructor name and fields.�HAgdaDoes this record have a  constructor?�HAgdaThe record field names.‘HAgdaÃThe record field telescope. (Includes record parameters.) Note: $TelV recTel _ == telView' recConType . Thus, recTel is redundant.’HAgdaMutually recursive functions, datas and record>s. Does include this record. Empty if not recursive. Nothing- if not yet computed (by positivity checker).“HAgda#Eta-expand at this record type? Falseà for unguarded recursive records and coinductive records unless the user specifies otherwise.”HAgdaîIn case eta-equality is off, do we allow pattern matching on the constructor or construction by copattern matching? Having both loses subject reduction, see issue #4560. After positivity checking, this field is obsolete, part of °H.•HAgda” or •*? Matters only for recursive records. é~Ô means that the user did not specify it, which is an error for recursive records.˜HAgdaNumber of parameters.™HAgda+Number of arguments (excluding parameters).šHAgdaÐName of (original) constructor and fields. (This might be in a module instance.)›HAgda Name of datatype or record type.�HAgdaInductive or coinductive?žHAgdaCubical composition.ŸHAgda Projections. é~ if not yet computed. HAgda Which arguments are forced (i.e. determined by the type of the constructor)? Either this list is empty (if the forcing analysis isn't run), or its length is conArity.¡HAgdaÔWhich arguments are erased at runtime (computed during compilation to treeless)? â~ means erased, � means retained. é~Í if no erasure analysis has been performed yet. The length of the list is conArity.¤HAgdaà for primitive functions, not null for builtin functions.¥HAgdaËBuiltin functions can have inverses. For instance, natural number addition.¦HAgdaé~ for primitive functions, è~ something for builtin functions.­HAgda r .p2 (Invariant: the number of abstractions equals ¼HØ.) In case of a projection-like function, just the function symbol is returned as Ù7: t = pars -> f.¾HAgda,Additional information for extended lambdas.ÀHAgda®For complicated reasons the scope checker decides the QName of a pattern lambda, and thus its module. We really need to decide the module during type checking though, since if the lambda appears in a refined context the module picked by the scope checker has very much the wrong parameters.ÁHAgda2Was this definition created from an absurd lambda » ()?ÃHAgda¹An alternative representation of partial elements in a telescope: “ ¢E » ”. [Æ�A u�A, ... , Æ™A u™A] : ” ’C PartialP (¨D_â: Æâ:) T see cubicaltt paper (however we do not store the type T).ÅHAgda4the telescope ”, binding vars for the clauses, “ ¢E ”ÆHAgda?a system [Æ�A u�A, ... , Æ™A u™A] where “, ” ¢E Æâ: and “, ”, Æâ: ¢E uâ:ÉHAgda;The backends are responsible for parsing their own pragmas.ËHAgdaÊInformation about whether an argument is forced by the type of a function.ÎHAgdamonotoneÏHAgdaantitoneÐHAgdano information (mixed variance)ÑHAgdaconstantÔHAgda5When lambda-lifting new args are generalizable if ÔH, also when the number is zero.×HAgdaHiding should not be used.ØHAgda-The canonical name, used e.g. in compilation.ÙHAgdaType of the lifted definition.ÚHAgda˜Variance information on arguments of the definition. Does not include info for dropped parameters to projection(-like) functions and constructors.ÛHAgdašPositivity information on arguments of the definition. Does not include info for dropped parameters to projection(-like) functions and constructors.ÜHAgda)How many arguments should be generalised.ÝHAgdaäGives the name of the (bound variable) parameter for named generalized parameters. This is needed to bring it into scope when type checking the data/record definition corresponding to a type with generalized parameters.áHAgdaJust q/ when this definition is an instance of class qâHAgda:Has this function been created by a module instantiation?ãHAgdaÄThe set of symbols with rewrite rules that match against this symboläHAgda8should compilers skip this? Used for e.g. cubical's compåHAgdaÇShould the def be treated as injective by the pattern matching unifier?æHAgda)Is this a function defined by copatterns?çHAgda‰What blocking tag to use when we cannot reduce this def? Used when checking a function definition is blocked on a meta in the type.èHAgda%The language used for the definition.êHAgda?Rewrite rules can be added independently from function clauses.ìHAgdaName of rewrite rule q : “ ’C f ps áD rhs where áD is the rewrite relation.íHAgda“.îHAgdaf.ïHAgda “ ¢E f ps : t.ðHAgda “ ¢E rhs : t.ñHAgda“ ¢E t.òHAgdaÎWas this rewrite rule created from a clause in the definition of the function?ÿHAgda1Non-linear (non-constructor) first-order pattern.€IAgdaðMatches anything (modulo non-linearity) that only contains bound variables that occur in the given arguments.�IAgdaMatches f es‚IAgdaMatches » x ’C tƒIAgdaMatches  (x : A) ’C B„IAgda"Matches a sort of the given shape.…IAgdaMatches x es# where x is a lambda-bound variable†IAgda'Matches the term modulo ² (ideally ²·).‡IAgdaA structured presentation of a Õ7 for reification into ˆ‰.ˆIAgda(f vs | ws) es. The first ‡I is the parent function f with its args vs. The list of ‡Is are the with expressions ws . The Ò7 are additional arguments esì (possible in case the with-application is of function type) or projections (if it is of record type).‰IAgdac vs.ŠIAgdad vs.‹IAgda.v.ŒIAgdav.ŽIAgdaA  DisplayForm is in essence a rewrite rule  q ts --> dt: for a defined symbol (could be a constructor as well) q. The right hand side is a ‡I which is used to reify to a more readable ˆ‰. The patterns ts are just terms, but the first  dfPatternVars: variables are pattern variables that matches any term.�IAgdaNumber n of pattern variables in ‘I.‘IAgdaLeft hand side patterns, the nÄ first free variables are pattern variables, any variables above n© are fixed and only match that particular variable. This happens when you have display forms inside parameterised modules that match on the module parameters. The ¦ is ignored in these patterns.’IAgdaRight hand side.žIAgda'The rewrite rules defined in this file.ŸIAgda0Which clause is an interaction point located in?¡IAgda4The interaction point is not in the rhs of a clause.¢IAgdaThe name of the function.£IAgda*The number of the clause of this function.¤IAgdaThe type of the function¥IAgdaModule parameter substitution¦IAgdaThe original AST clause.§IAgda&Environment for rechecking the clause.¨IAgda The boundary imposed by the LHS.ªIAgdaÛDatatype representing a single boundary condition: x_0 = u_0, ... ,x_n = u_n ¢E t = ?n es¬IAgda x_0 = u_0, ... ,x_n = u_n­IAgda t®IAgda ?n es¯IAgdaIs ?n overapplied in ?n es ?°IAgdaÐFlag to indicate whether the meta is overapplied in the constraint. A meta is overapplied if it has more arguments than the size of the telescope in its creation environment (as stored in MetaInfo).³IAgda/Data structure managing the interaction points.ÄWe never remove interaction points from this map, only set their ¸I to True. (Issue #2368)´IAgda«Interaction points are created by the scope checker who sets the range. The meta variable is created by the type checker and then hooked up to the interaction point.¶IAgda&The position of the interaction point.·IAgda0The meta variable, if any, holding the type etc.¸IAgda/Has this interaction point already been solved?¹IAgdaÉThe clause of the interaction point (if any). Used for case splitting.¾IAgdaÅName suggestion for meta variable. Empty string means no suggestion.¿IAgdaMetaInfo4 is cloned from one meta to the next during pruning.ÂIAgda-Instantiable with irrelevant/erased solution?ÃIAgda7Run the extended occurs check that goes in definitions?ÄIAgdaUsed for printing. Just x8 if meta-variable comes from omitted argument with name x.ÅIAgdaÄShould this meta be generalized if unsolved? If so, at what ArgInfo?ÉIAgdaðMeta variable priority: When we have an equation between meta-variables, which one should be instantiated?6Higher value means higher priority to be instantiated.ÏIAgda(» (xs : t€A) ’C e) : t This is not an instance of ÌIÔ as the domain type has already been checked. For example, when checking '(» (x y : Fin _) ’C e) : (x : Fin n) ’C ? we want to postpone (» (y : Fin n) ’C e) : ? where Fin n is a Ç7 rather than an ñ>.ÐIAgda,Quote the given term and check type against Õ7ÓIAgdaÓmetas created for hidden and instance arguments in the principal argument's typeÔIAgdaÇprincipal argument's type, stripped of hidden and instance argumentsÕIAgda Solving a ÍIð constraint may or may not check the target type. If it did, it returns a handle to any unsolved constraints.ÙIAgda4solved by term (abstracted over some free variables)ÚIAgdaunsolvedÛIAgda+open, to be instantiated by instance searchÜIAgda(solution blocked by unsolved constraintsÞIAgda¿Frozen meta variable cannot be instantiated by unification. This serves to prevent the completion of a definition by its use outside of the current block. (See issues 118, 288, 399).ßIAgdaDo not instantiate.çIAgda4some metavariables are more eager to be instantiatedèIAgdaŽa metavariable doesn't have to depend on all variables in the context, this "permutation" will throw away the ones it does not depend onëIAgdaÂmeta variables scheduled for eta-expansion but blocked by this oneìIAgdaÂare we past the point where we can instantiate this meta variable?íIAgdaJust m$ means this meta will be equated to m# when the latter is unblocked. See blockedTermOnProblem.îIAgda€The value of a generalizable variable. This is created to be a generalizable meta before checking the type to be generalized.ôIAgda2Generalize because it is a generalizable variable.õIAgda—Generalize because it is a metavariable and we're currently checking the type of a generalizable variable (this should get the default modality).öIAgdaDon't generalize.÷IAgdaÆParametrized since it is used without MetaId when creating a new meta.ûIAgdaare we checking (CmpLeq) or inferring (CmpEq ) the type?ýIAgdaµA thing tagged with the context it came from. Also keeps the substitution from previous checkpoints. This lets us handle the case when an open thing was created in a context that we have since exited. Remember which module it's from to make sure we don't get confused by checkpoints from other files.ƒJAgda÷We can either compare two terms at a given type, or compare two types without knowing (or caring about) their sorts.„JAgdaType should not be Size5. But currently, we do not rely on this invariant.…JAgda Replaces AsTermsOf Size.‡JAgdaAn extension of � to >=.–JAgdaåMeta created for a term blocked by a postponed type checking problem or unsolved constraints. The ØI( for the meta (when unsolved) is either ÜI or ÝI.—JAgda+The range is the one of the absurd pattern.˜JAgdaCheck that the Õ7. is either not a SIZELT or a non-empty SIZELT.™JAgdaœthe first argument is the instance argument and the second one is the list of candidates (or Nothing if we haven™@t determined the list of candidates yet)šJAgda2Last argument is the error causing us to postpone.›JAgdaÃFirst argument is computation and the others are hole and goal typeœJAgdaCheckLockedVars t ty lk lk_ty with t : ty,  lk : lk_ty and t lk well-typed.�JAgda)is the term usable at the given modality?¯JAgdaHash of the source code.°JAgda¬The source code. The source code is stored so that the HTML and LaTeX backends can generate their output without having to re-read the (possibly out of date) source code.±JAgda4Source file type, determined from the file extension²JAgda"Imported modules and their hashes.³JAgdaModule name of this interface.´JAgdaScope defined by this module.ùAndreas, AIM XX: Too avoid duplicate serialization, this field is not serialized, so if you deserialize an interface, iScope will be empty. But constructIScope constructs ´J from µJ.µJAgda1Scope after we loaded this interface. Used in ¹Š and ¾‹.·JAgda-Display forms added for imported identifiers.¸JAgda&User warnings for imported identifiers¹JAgda8Whether this module should raise a warning when imported½JAgda$Pragma options set in library files.¾JAgdaPragma options set in the file.¿JAgdaéOptions/features used when checking the file (can be different from options set directly in the file).ÊJAgda³Warnings were encountered when the module was type checked. These might include warnings not stored in the interface itself, specifically unsolved interaction metas. See Agda.Interaction.ImportsËJAgdaâ~É if the module is a primitive module, which should always be importable.ÌJAgdaThe ÍJ used to create the ­JÍJAgdaÝDistinguishes between type-checked and scope-checked interfaces when stored in the map of ÆJ.ÐJAgdaóA monad that has read and write access to the stConcreteNames part of the TCState. Basically, this is a synonym for `MonadState ConcreteNames m` (which cannot be used directly because of the limitations of Haskell's typeclass system).ÔJAgdaÄMaps source file names to the corresponding top-level module names.ÕJAgdaCreate a fresh name from a.ÞJAgda0A complete log for a module will look like this:âJßJ, entering the main module.áJßJàJ*, for declarations and nested modulesàJ, leaving the main module.áJAgdaNever a Section or ScopeDeclãJAgdaLike äJù, but storing the log for an ongoing type checking of a module. Stored in reverse order (last performed action first).äJAgda‰A log of what the type checker does and states after the action is completed. The cached version is stored first executed action first.éJAgdaÙA part of the state which is not reverted when an error is thrown or the state is reset.íJAgda÷Callback function to call when there is a response to give to the interactive frontend. See the documentation of ¸3.îJAgda÷Structure to track how much CPU time was spent on which Agda phase. Needs to be a strict field to avoid space leaks!ïJAgdaShould be strict field.ðJAgdaÂCached typechecking state from the last loaded file. Should be Nothing when checking imports.ñJAgda#Current backends with their optionsòJAgda)A mutual block of names in the signature.ôJAgda&The original info of the mutual block.øJAgdaHighlighting info.ùJAgdaêDisambiguation carried out by the type checker. Maps position of first name character to disambiguated ø for each î$ already passed by the type checker.þJAgdaÔDirty when a constraint is added, used to prevent pointer update. Currently unused.ÿJAgdaËDefinitions to be considered during occurs check. Initialized to the current mutual block before the check. During occurs check, we remove definitions from this set as soon we have checked them.€KAgdaåDeclared identifiers of the current file. These will be serialized after successful type checking.�KAgdaéFor each module remember the checkpoint corresponding to the orignal context of the module parameters.‚KAgda-Display forms we add for imported identifiersƒKAgdaÀThe current module is available after it has been type checked.…KAgdaƒMap keeping track of concrete names assigned to each abstract name (can be more than one name in case the first one is shadowed)†KAgda²Map keeping track for each name root (= name w/o numeric suffixes) what names with the same root have been used during a TC computation. This information is used to build the ShadowingNames map.‡KAgdaëMap keeping track for each (abstract) name the list of all (raw) names that it could maybe be shadowed by.ˆKAgdaÚCounters to collect various statistics about meta variables etc. Only for current file.•KAgdaÓShould we instantiate away blocking metas? This can produce ill-typed terms but they are often more readable. See issue #3606. Best set to True only for calls to pretty*/reify to limit unwanted reductions.–KAgda/Local partial definitions, to be stored in the  Interface™KAgda1Name disambiguation for the sake of highlighting.�KAgdaýHighlighting info for tokens and Happy parser warnings (but not for those tokens/warnings for which highlighting exists in øJ).žKAgda?Imported declared identifiers. Those most not be serialized!£KAgda2Pattern synonyms of the current file. Serialized.¤KAgda3Imported pattern synonyms. Must not be serialized!¥KAgdaÆCollected generalizable variables; used during scope checking of terms¦KAgda&Options applying to the current file. OPTIONS! pragmas only affect this field.¨KAgda;Display forms added by someone else to imported identifiersªKAgda{-# FOREIGN #-}â code that should be included in the compiled output. Does not include code for imported modules.¬KAgda Imported  UserWarnings, not to be stored in the  Interface­KAgdaLocally defined  UserWarnings, to be stored in the  Interface®KAgda=Whether the current module should raise a warning when opened¯KAgda6Imported partial definitions, not to be stored in the  Interface°KAgdaÊMap from directories to paths of closest enclosing .agda-lib files (or Nothing if there are none).±KAgda:Contents of .agda-lib files that have already been parsed.·KAgda/The state which is frozen after scope checking.¸KAgda1The state which is modified after scope checking.¹KAgda'State which is forever, like a diamond.ºKAgdaEmpty persistent state.»KAgdaEmpty state of type checker.üKAgda Creates a ÔJ map based on ÁK. O(n log n).For a single reverse lookup in ÁK, rather use lookupModuleFromSourse.ýKAgda Lookup an ‚  in üK.O(n).þKAgdaÇCombines the source hash and the (full) hashes of the imported modules.€LAgdaEmbed � into ‡J.�LAgda!Flip the direction of comparison.‚LAgdaTurn a � function into a ‡J function. Property:  dirToCmp f (fromCmp cmp) = f cmp“LAgda$By default, we have no display form.•LAgda+Create a definition with sensible defaults.šLAgda>Building the projection function (which drops the parameters).›LAgda,The info of the principal (record) argument.œLAgda3Make sure we do not overwrite a user specification. LAgdaIs the record type recursive?¢LAgdaA template for creating îG% definitions, with sensible defaults.¨LAgdaÂChecking whether we are dealing with a function yet to be defined.¯LAgdaConceptually: 2redBind m f k = either (return . Left . f) k =<< m²LAgda:Not quite all reductions (skip non-terminating reductions)ÀLAgda+Are the clauses of this definition delayed?ÁLAgda2Has the definition failed the termination checker?ÂLAgdaÁHas the definition not termination checked or did the check fail?ÅLAgda&ifTopLevelAndHighlightingLevelIs l b m runs mû when we're type-checking the top-level module (or before we've started doing this) and either the highlighting level is at least l or b is â~.ÆLAgda$ifTopLevelAndHighlightingLevelIs l m runs mô when we're type-checking the top-level module (or before we've started doing this) and the highlighting level is at least l.–MAgda&Modify the lens-indicated part of the TCEnv in a subcomputation.˜MAgda A variant of šD6 in which the computation is strict in the new state.šMAgdaOverwrite the part of the ” focused on by the lens.›MAgdaModify the part of the ” focused on by the lens.œMAgda'Modify a part of the state monadically.�MAgdaModify the part of the ”0 focused on by the lens, and return some result.žMAgda?Modify a part of the state monadically, and return some result.§MAgda.Preserve the state of the failing computation.¨MAgdaÌExecute a finalizer even when an exception is thrown. Does not catch any errors. In case both the regular computation and the finalizer throw an exception, the one of the finalizer is propagated.ªMAgdaÃUtility function for 1-arg constructed type errors. Note that the  HasCallStack+ constraint is on the *resulting* function.±MAgda4Running the type checking monad (most general form).²MAgdaÁRunning the type checking monad on toplevel (with initial state).´MAgda´M runs a safe ‘ action (a ‘9 action which cannot fail, except that it might raise ©D!s) in the initial environment.µMAgda6Runs the given computation in a separate thread, with a copy' of the current state and environment.ÒNote that Agda sometimes uses actual, mutable state. If the computation given to forkTCM tries to modifyÜ this state, then bad things can happen, because accesses are not mutually exclusive. The forkTCM8 function has been added mainly to allow the thread to read7 (a snapshot of) the current state in a convenient way.ŒNote also that exceptions which are raised in the thread are not propagated to the parent, so the thread should not do anything important.¶MAgda$Base name for patterns in telescopes·MAgda&Base name for extended lambda patterns¸MAgdaA command sent when an exit command is about to be completed.Ì3Agda The default ¸3Ó function prints certain things to stdout (other things generate internal errors).ÛUAgda!Are implicit arguments displayed?ÜUAgda#Are irrelevant arguments displayed?ÝUAgda.Has the module been successfully type checked?ÞUAgdaEntry in context.àUAgdaThe original concrete name.áUAgda&The name reified from abstract syntax.âUAgda The type.ãUAgda)The value (if it is a let-bound variable)äUAgda Whether the áU is in scope.åUAgda/Auxiliary information that comes with Goal TypeéUAgda Errors that goes into Info_ErrorÖWhen an error message is displayed this constructor should be used, if appropriate.îUAgdaGoals & WarningsùUAgdaÔWhen an error message is displayed this constructor should be used, if appropriate.üUAgdaüU, denotes either an error or a success (when Ã3< is present) TODO: split these into separate constructors‡VAgda7Yes, remove all token-based highlighting from the file.ˆVAgdaNo.ȸ3¹3ÚUÛUÜUÝUº3×UØUÙU»3ˆV‡V¼3ùUõUöU÷UøUúUûUüUýUþUÿU€V�V‚VƒV„V½3…V†V¾3¿3À3Á3Â3Ã3Ä3Å3Æ3Ç3È3É3Ê3Ë3Ì3™TÞUßUàUáUâUãUäUåUæUçUèUéUêUëUìUíUîUïUðUñUòUóUôUȾ3¿3À3Á3Â3Ã3Ä3Å3Æ3Ç3È3É3Ê3Ë3»3ˆV‡V½3…V†V¼3ùUõUöU÷UøUúUûUüUýUþUÿU€V�V‚VƒV„VïUðUñUòUóUôUîU™TéUêUëUìUíUåUæUçUèUÞUßUàUáUâUãUäU¹3ÚUÛUÜUÝUº3×UØUÙU¸3Ì3À Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêb}8»TAgda A subset of ¿T.ÖTAgda8Ignore additional checks, like termination/positivity...×TAgdaDon't ignore any checks.ÝTAgda/Ordered ascendingly by degree of normalization.ãTAgdaAvailable backends.çTAgdaThe çT monad. ã€! state holds the remaining input.èTAgdaOrder the fields of a record construction. Raise generated îEs as warnings.ÆhAgda>Order the fields of a record construction. Raise generated îE s as errors.ÇhAgdaA record field assignment record{xs = es}+ might not mention all visible fields. insertMissingFieldsƒ inserts placeholders for the missing visible fields and returns the values in order of the fields in the record declaration.ÈhAgdaA record field assignment record{xs = es}+ might not mention all visible fields. insertMissingFieldsƒ inserts placeholders for the missing visible fields and returns the values in order of the fields in the record declaration.ÉhAgdaA record field assignment record{xs = es}+ might not mention all visible fields. insertMissingFieldsƒ inserts placeholders for the missing visible fields and returns the values in order of the fields in the record declaration.ÊhAgdaùGet the definition for a record. Throws an exception if the name does not refer to a record or the record is abstract.ËhAgda.Get the record name belonging to a field name.ÌhAgda Get the field names of a record.ÎhAgda0Find all records with at least the given fields.ÏhAgda Get the field types of a record.ÐhAgda/Get the field names belonging to a record type.ÑhAgdaÈReturns the given record type's constructor name (with an empty range).ÒhAgda£Reduce a type and check whether it is a record type. Succeeds only if type is not blocked by a meta var. If yes, return its name, parameters, and definition.ÓhAgdaÝReduce a type and check whether it is a record type. Succeeds only if type is not blocked by a meta var. If yes, return its name, parameters, and definition. If no, return the reduced type (unless it is blocked).ÔhAgda*Get the original projection info for name.ÕhAgdagetDefType f t? computes the type of (possibly projection-(like)) function f whose first argument has type t . The  parameters for f are extracted from t. Nothing if f is projection(like) but t is not a datarecord axiom type.Precondition: t is reduced. See also: ÜŒÖhAgdaThe analogue of ŽX. If v is a value of record type t with field f, then projectTyped v t f returns the type of f v0. And also the record type (as first result).+Works also for projection-like definitions f9. In this case, the first result is not a record type.Precondition: t is reduced.×hAgdaÁGiven a head and its type, compute the types of the eliminations.ÙhAgdaÚGoing under one of these does not count as a decrease in size for the termination checker.ÚhAgdaäCheck if a name refers to a record which is not coinductive. (Projections are then size-preserving)ÛhAgdaàCheck if a type is an eta expandable record and return the record identifier and the parameters.ÜhAgdaÙTurn off eta for unguarded recursive records. Projections do not preserve guardedness.ÝhAgdaàTurn on eta for inductive guarded recursive records. Projections do not preserve guardedness.ÞhAgdaÅTurn on eta for non-recursive record, unless user declared otherwise.ßhAgda1Check whether record type is marked as recursive.9Precondition: record type identifier exists in signature.àhAgda etaExpandBoundVar i = (”, Ã, Ä)%Precondition: The current context is “ = “�A, x:R pars, “‚A where |“‚A| = i and R4 is a eta-expandable record type with constructor c and fields “'.Postcondition: ” = “�A, “', “‚A[c “'] and  “ ¢E à : ” and  ” ¢E Ä : “.áhAgda #expandRecordVar i “ = (”, Ã, Ä, “')Precondition: “ = “�A, x:R pars, “‚A where |“‚A| = i and R7 is a eta-expandable record type with constructor c and fields “'.Postcondition: ” = “�A, “', “‚A[c “'] and  “ ¢E à : ” and  ” ¢E Ä : “.âhAgdaÃPrecondition: variable list is ordered descendingly. Can be empty.ãhAgda ¿curryAt v (“ (y : R pars) -> B) n = ( v -> » “ ys ’C v “ (c ys) {- curry -} , v -> » “ y ’C v “ (p1 y) ... (pm y) {- uncurry -} , “ (ys : As) ’C B[c ys / y] )where  n = size “.ähAgdaetaExpand r pars u, computes the eta expansion of record value u at record type r pars.The first argument r? should be the name of an eta-expandable record type. Given /record R : Set where field x : A; y : B; .z : Cand r : R, /etaExpand R [] r = (tel, [R.x r, R.y r, R.z r])where tel8 is the record telescope instantiated at the parameters pars.åhAgdaÄEta expand a record regardless of whether it's an eta-record or not.êhAgdaÖIs the type a hereditarily singleton record type? May return a blocking metavariable.îPrecondition: The name should refer to a record type, and the arguments should be the parameters to the type.ìhAgdaˆReturn the unique (closed) inhabitant if exists. In case of counting irrelevance in, the returned inhabitant contains dummy terms.íhAgdaÛCheck whether a type has a unique inhabitant and return it. Can be blocked by a metavar.îhAgdaèCheck whether a type has a unique inhabitant (irrelevant parts ignored). Can be blocked by a metavar.ðhAgda®Checks whether the given term (of the given type) is beta-eta-equivalent to a variable. Returns just the de Bruijn-index of the variable if it is, or nothing otherwise.ÂhAgda(Name of record type (for error message).AgdaHow to fill a missing field.AgdaField names of the record type.Agda6Provided fields with content in the record expression.Agda#Content arranged in official order.ÅhAgda(Name of record type (for error message).AgdaHow to fill a missing field.AgdaField names of the record type.Agda6Provided fields with content in the record expression.Agda#Content arranged in official order.ÆhAgda(Name of record type (for error message).AgdaHow to fill a missing field.AgdaField names of the record type.Agda6Provided fields with content in the record expression.Agda#Content arranged in official order.ÇhAgda*Name of record type (for error reporting).Agda=Function to generate a placeholder for missing visible field.Agda Given fields.AgdaAll record field names with ¦.AgdaÂGiven fields enriched by placeholders for missing explicit fields.ÈhAgda*Name of record type (for error reporting).Agda=Function to generate a placeholder for missing visible field.Agda Given fields.AgdaAll record field names with ¦.AgdaÂGiven fields enriched by placeholders for missing explicit fields.ÉhAgda*Name of record type (for error reporting).Agda=Function to generate a placeholder for missing visible field.Agda Given fields.AgdaAll record field names with ¦.AgdaÂGiven fields enriched by placeholders for missing explicit fields.ÐhAgda"Record type. Need not be reduced.ÖhAgdaHead (record value).Agda Its type.Agda Projection.=µ`¶`·`¸`¹`º`ºh»h¼hÀh¿h¾h½hÁhÂhÃhÄhÅhÆhÇhÈhÉhÊhËhÌhÍhÎhÏhÐhÑhÒhÓhÔhÕhÖh×hØhÙhÚhÛhÜhÝhÞhßhàháhâhãhähåhæhçhèhéhêhëhìhíhîhïhðh=ÁhÂhÃhÄhÅhÆhÇhÈhÉhÊhËhÌh¸`ÍhÎhÏhÐhÑhº`ÒhÓhÔhÕhÖh¼hÀh¿h¾h½h×h¹`ØhÙhÚhÛhµ`¶`ÜhÝhÞhßhàháhâhãhähåhæhçhèhéh·`êhëhìhíhîhïhðhºh»hà Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÃ=’M™SÀS¬`­`¬`­`ÀS’M™S� Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêé§ÆƒS‚S�S€SþRÿRŒÑHÐHÏHÎH�‹JŒJŽ��‘’“”¹K¸K¶K·K•úFùFøF÷FöFõFôFóFòFñFðFïFîFíFìFëFèFçFæFåFäFâFáFàFßFÞFÝFÜFÚFÙFØF×FÖFÕFÔFÓFÒFÐFÏFÎFÍFÑFãFêFéFÛFËFÌF–ÿFýFþF—ûFüF˜½I»I¼I™íEìEëEêEèEéEš­D¬D«DªD§D¨D©D›ªF©F¨F§F¦F¥F¤F£F¢F¡F FŸFžF�FœF›F™F˜F—F–F•F”F“F’F‘F�F�FŽF�FŒF‹FŠF‰FˆF‡F†F…F„FƒF‚F�F€FÿEþEýEüEûEúEùEøE÷EöEõEôEóEòEšFñEœ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåóCôCõC‹DŒD�DŽD�D�D‘D’D“D”D•D–D—DšD˜D™D›DœD�DžDŸD D¡D¢D£D¦D¤D¥D®D¯D°D±D¾E½E¼E»EºE¹E¸E·E¶EµE´E³E²E±E°E¯E®E­E¬E«EªE©E¨E§E¦E¥E¤E£E¢E¡E EŸEžE�EœE›EšE™E˜E–E•E”E“E’E‘E�E�EŽE�EŒE‹EŠE‰E‡E†E…E„EƒE‚E�E€EýDüDûDúDùDøD÷DöDõDôDóDòDñDðDîDíDìDëDêDéDèDçDæDåDäDãDâDáDàDßDÞDÝDÜDÛDÚDÙDØD×DÖDÕDÔDÓDÒDÑDÐDÏDÎDÍDÌDËDÊDÉDÈDÇDÆDÅDÄDÃDÂDÁDÀD¿D¾D½D¼D»DºD¹D¸D·D¶DµD´D³D²DˆEþDÿDïD—E¿EÅEÄEÃEÂEÀEÁEÆEÊEÉEÇEÈEËEÌEÍEÎEÞEÝEÜEÛEÚEÙEØE×EÖEÕEÔEÓEÒEÑEÏEÐEßEâEàEáEãEçEæEäEåEîEïEðE«F±F°F¯F®F¬F­F²F·F¶FµF³F´F¸F¹FºF»F¾F¼F½F¿FÂFÀFÁFÃFÄFÅFÆFÇFÈFÉFÊF€G‚G�GƒG„G‡G…G†GˆGŽG�GŒG‹G‰GŠG�G�G‘G³G²G±G°G¯G®G­G¬G«GªG©G¨G§G¦G¥G¤G£G¢G¡G GŸGžG�GœG›GšG™G˜G—G–G•G”G’G´G“GµG¶G·G¸G½G¼G»G¹GºG¾G¿GÀGÁGÂGÃGÇGÆGÄGÅGÈGÉGÊGËGÌGÍGÎG×GÖGÕGÔGÓGÒGÑGÏGÐGØGÙGÚGÝGÛGÜGÞGàGßGáGâGãGäGåGæGçGèGéG§H¦H¥H¤H£H¢H¡H HŸHžH�HœH›HšH™H˜H—H–H•H”H“H’H‘H�H�HŽH�HŒH‹HŠH‰HˆH‡H†H…H„HƒH‚H�H€HÿGþGýGüGûGúGùGøG÷GöGõGôGóGíGìGëGêGðGòGîGïGñG¨H«H©HªH¬H¯H­H®H°H³H±H²H´HµH¶H·H½H¼H»HºH¸H¹H¾HÂHÁH¿HÀHÃHÆHÄHÅHÇHÈHÉHÊHËHÌHÍHÒHÓHÔHÕHéHèHçHæHåHäHãHâHàHßHÞHÝHÜHÛHÚHÙHØH×HÖHáHêHòHñHðHïHîHíHëHìHóHôHùHøH÷HõHöHúHýHûHüHþHÿH†I…I„IƒI‚I€I�I‡IŒI‹IŠIˆI‰I�IŽI’I‘I�I�I“I”I•I–I—I˜I™IšIžI�I›IœIŸI¨I§I¦I¥I¤I£I¢I I¡I©IªI¯I®I­I«I¬I°I±I²I³I´I¹I¸I·IµI¶IºI¾I¿IÅIÄIÃIÂIÀIÁIÆIÇIÈIÉIÊIËIÐIÏIÎIÌIÍIÑIÔIÒIÓIÕIÖI×IØIÝIÜIÛIÚIÙIÞIßIàIáIâIãIäIíIìIëIêIçIæIèIåIéIîIòIñIïIðIóIöIôIõI÷IüIûIúIøIùIýI‚J�J€JþIÿIƒJ†J„J…J‡JŠJˆJ‰J�J�JœJ›JšJ™J˜J–J•J”J“J’J‘J�J�J—JŽJžJ¢J¡JŸJ J£J¤J¥J¦J¬J«JªJ¨J§J©J­JÂJÁJÀJ¿J¾J½J¼J»JºJ¹J¸J·J¶JµJ´J±J°J¯J³J®J²JÃJÄJÅJÆJÇJÌJËJÊJÈJÉJÍJÎJÏJÐJÓJÑJÒJÔJÕJÖJ×JØJÙJÚJÛJÜJÝJÞJàJßJâJáJãJäJåJèJæJçJéJñJðJïJîJíJìJêJëJòJõJóJôJöJ–K•K”K“K’K‘K�K�KŽK�KŒK‹KŠK‰KˆK‡K†K…K„KƒK‚K�K€KÿJþJýJüJûJúJùJ÷JøJ—K˜K™KšK›K±K°K¯K®K­K¬K«KªK©K¨K§K¦K¥K¤K£K¢K¡K KŸKžKœK�K²KµK³K´KºK»K¼K½K¾K¿KÀKÁKÂKÃKÄKÅKÆKÇKÈKÉKÊKËKÌKÍKÎKÏKÐKÑKÒKÓKÔKÕKÖK×KØKÙKÚKÛKÜKÝKÞKßKàKáKâKãKäKåKæKçKèKéKêKëKìKíKîKïKðKñKòKóKôKõKöK÷KøKùKúKûKüKýKþKÿK€L�L‚LƒL„L…L†L‡LˆL‰LŠL‹LŒL�LŽL�L�L‘L’L“L”L•L–L—L˜L™LšL›LœL�LžLŸL L¡L¢L£L¤L¥L¦L§L¨L©LªL«L¬L­L®L¯L°L±L²L³L´LµL¶L·L¸L¹LºL»L¼L½L¾L¿LÀLÁLÂLÃLÄLÅLÆLÇLÈLÉLÊLËLÌLÍLÎLÏLÐLÑLÒLÓLÔLÕLÖL×LØLÙLÚLÛLÜLÝLÞLßLàLáLâLãLäLåLæLçLèLéLêLëLìLíLîLïLðLñLòLóLôLõLöL÷LøLùLúLûLüLýLþLÿL€M�M‚MƒM„M…M†M‡MˆM‰MŠM‹MŒM�MŽM�M�M‘M’M“M”M•M–M—M˜M™MšM›MœM�MžMŸM M¡M¢M£M¤M¥M¦M§M¨M©MªM«M¬M­M®M¯M°M±M²M³M´MµM¶M·M¸M¹MºM»M¼MÂRÃRÄRÅRÆRÇRÈRÉRÊRËRÌRÍRÎRÏRÐRÑRÒRÓRÔRÕRÖR×RØRÙRÚRÛRÜRÝRÞRßRàRáRâRãRäRåRæRçRèRéRêRëRìRíRîRïRóRòRðRñRôRõRöRúRûRüRýR„S…S†S‡SˆS‰SŠS‹SŒS�SŽS�S�S‘S’S“S”S•S–S—S˜S™SšS±S²S³S´SµS¶S·S¸S¿SÂSÀSÁSÃSÄSÅSÆSÇSÊSÞSßSàSáSâSãSäSåSæSçS‰VŠV‹VŒV�VŽV�V�V‘V’V“V”V•V–V—V˜V™VšV›VœV�VžVŸV V¡V¢V£V¤V¥V¦V§V¨V©VªV«V¬V­V®V¯V°V±V²V³V´VµV¶V·V¸V¹VºV»V¼V½V¾V¿VÀVÁVÂVÃVÄVÅVÆVÇVÈVÉVÊVËVÌVÍVÎVÏVÐVÑVÒVÓVÔVÕVØV×VÙVÚVÖVÛVÜVÝVÞVåVæVçVèVéVêVëVìVíVîVïVðVöVôVóVòV÷VøVñVõVùVúVûVüVýVþVÿV€W�W‚WƒW„W…W†W‡WˆW‰WŠW‹WŒW�WŽW�W�W‘W’W“W”W•W–WâWãWäWåWæWçWèWéWêWëWìWíWîWïWðWñWòWóWôWõWöW÷WøWùWúWûWüWýWþWÿW€XÀYÁYÂYÃYÄYÅYÆYÇYÈYÉYÊYËYÌYÍYÎYÏYÐYÑYÒYÓYÔYÕYÖY×YØYÙYÚYÛYÜYÝYÞYßYàYáYâYãYäYåYæYçYèYéYêYëYŒZ‘Z�Z�Z�ZŽZ’Z–Z•Z“Z”Z—Z˜Z™ZšZ›ZœZ�ZžZŸZ Z¡Z¢Z£Z¤Z¥Z¦Z§Z¨Z©ZªZ«Z¬Z­Z®Z¯Z°Z±Z²Z³Z´ZµZ¶Z·Z¸Z¹ZºZ»Z¼Z½Z¾Z¿ZÀZÁZÂZÃZÄZÅZÆZÇZÈZÉZÊZËZÌZÍZÎZÏZÐZÑZÒZÓZÔZÕZÖZ×ZØZÙZÚZÛZÜZÝZÞZßZàZáZâZãZäZåZæZçZèZéZêZëZìZíZîZïZðZñZòZóZôZõZöZ÷ZøZùZúZûZüZýZþZÿZ€[�[‚[ƒ[„[…[†[‡[ˆ[‰[Š[‹[Œ[�[Ž[�[�[‘[’[“[”[•[–[—[˜[™[š[›[œ[�[ž[Ÿ[ [¡[¢[£[¤[¥[¦[§[¨[©[ª[«[¬[­[®[¯[°[±[²[³[´[µ[¶[·[¸[¹[º[»[¼[½[¾[¿[À[Á[Â[Ã[Ä[Å[Æ[Ç[È[É[Ê[Ë[Ì[Í[Î[Ï[Ð[Ñ[Ò[Ó[Ô[Õ[Ö[×[Ø[Ù[Ú[Û[Ü[Ý[Þ[ß[à[á[â[ã[ä[å[æ[ç[è[é[ê[ë[ì[í[î[ï[ð[ñ[ò[ó[ô[õ[ö[÷[ø[ù[ú[û[ü[ý[þ[ÿ[‹\Œ\�\�\Ž\�\‘\•\”\’\“\–\—\š\˜\™\›\ž\œ\�\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\µ^¶^·^¸^¹^º^»^¼^½^¾^¿^À^Á^Â^Ã^Ä^Å^Æ^Ç^È^É^Ê^Ë^Ì^Í^Î^Ï^Ð^Ñ^Ò^Ó^Ô^Õ^Ö^×^Ø^Ù^Ú^Û^Ü^Ý^Þ^ß^à^á^â^ã^ä^å^æ^ç^è^é^ê^ë^ì^í^î^ï^ð^ñ^ò^ó^ô^õ^ö^÷^ø^ù^ú^û^ü^ý^þ^ÿ^€_�_‚_ƒ_„_…_†_‡_ˆ_ž_Ÿ_ _¡_¢_¨_§_¦_¥_¤_£_©_ª_«_¬_¯_­_®_°_±_²_³_´_µ_¶_·_¸_¹_º_»_¼_½_¾_¿_À_Á_Â_Ã_Ä_Å_Æ_Ç_È_É_Ê_Ë_Ì_Í_Î_Ï_Ð_Ñ_Ò_Ó_Ô_Õ_Ö_×_Ø_Ù_Ú_Û_Ü_Ý_Þ_ß_à_á_â_ã_ä_å_æ_ç_è_é_ê_ë_ì_í_î_ï_ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÙ•ÖVAgda$Record a function call in the trace.ØVAgdaReset âF' to previous value in the continuation.Caveat: if the last ÖV did not set an ÛV, for example, only set the õ  with ‘G/, we will revert to the last interesting call.ÚVAgda5Lispify and print the given highlighting information.ÝVAgda€Sets the current range (for error messages etc.) to the range of the given object, if it has a range (i.e., its range is not © ).ÞVAgdahighlightAsTypeChecked rPre r m runs mÇ and returns its result. Additionally, some code may be highlighted:If r% is non-empty and not a sub-range of rPre (after ³  has been applied to both): r/ is highlighted as being type-checked while m0 is running (this highlighting is removed if m completes  successfully).'Otherwise: Highlighting is removed for rPre - r before m runs, and if m completes successfully, then rPre - r) is highlighted as being type-checked.ÞVAgda rPreAgda r ÕVØV×VÙVÖVÚVÛVÜVÝVÞV ÛVÕVØV×VÙVÖVÚVÜVÝVÞV² Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêÛu³SAgdaGet the statistics.´SAgda)Modify the statistics via given function.µSAgdaIncrease specified counter by 1.¶SAgdaIncrease specified counter by n.·SAgdaÂSet the specified counter to the maximum of its current value and n.¸SAgdaÁPrint the given statistics if verbosity "profile.ticks" is given.±S²S³S´SµS¶S·S¸S±S²SµS¶S·S³S´S¸SÌ Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê⯑\AgdaA deep view on sizes.—\Agda)A de Bruijn index under some projections.›\AgdaA useful view on sizes.Ÿ\AgdaCheck if a type is the æZ type. The argument should be reduced.¡\Agda)Result of querying whether size variable i is bounded by another size.¢\Agdayes  i : Size< t©\AgdaÑTest whether OPTIONS --sized-types and whether the size built-ins are defined.ª\Agda+Test whether the SIZELT builtin is defined.«\Agda$Add polarity info to a SIZE builtin.¬\AgdaThe sort of built-in types SIZE and SIZELT.­\AgdaThe type of built-in types SIZE and SIZELT.®\AgdaThe built-in type SIZE with user-given name.¯\AgdaThe built-in type SIZE.°\Agda The name of SIZESUC.³\Agda>Transform list of terms into a term build from binary maximum.´\AgdaExpects argument to be reduced.·\AgdasizeViewComparable v w checks whether v >= w (then Left) or v <= w (then Right ). If uncomparable, it returns  NotComparable.¹\AgdasizeViewPred k v decrements v by k (must be possible!).º\AgdasizeViewOffset v8 returns the number of successors or Nothing when infty.»\Agda'Remove successors common to both sides.¼\AgdaTurn a size view into a term.¿\AgdamaxViewCons v ws = max v ws. It only adds v to ws+ if it is not subsumed by an element of ws.À\AgdasizeViewComparableWithMax v ws tries to find w in ws that compares with v+ and singles this out. Precondition:  v /= DSizeInv.È\AgdaIgnore � in equality test.8‹\Œ\�\�\�\Ž\‘\•\”\“\’\–\—\š\™\˜\›\ž\�\œ\Ÿ\ \¡\£\¢\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\8¡\£\¢\Ÿ\ \¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\›\ž\�\œ\´\—\š\™\˜\µ\¶\–\‘\•\”\“\’\�\�\�\Ž\·\¸\¹\º\»\¼\½\Œ\‹\¾\¿\À\Á\Â\Ê Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãêç„ ŒZAgdaSort primitives.’ZAgdaThe coinductive primitives.£ZAgdagetTerm use name looks up nameÁ as a primitive or builtin, and throws an error otherwise. The useÌ argument describes how the name is used for the sake of the error message.¤ZAgda2Rewrite a literal to constructor form if possible.ë[AgdaTries to build a ’Z.ö[AgdaßCheck whether the type is actually an path (lhs áD rhs) and extract lhs, rhs, and their type.Precondition: type is reduced.ø[AgdaNon dependent Pathú[Agda Revert the Ñ6.Postcondition: type is reduced.û[Agda"Get the name of the equality type.ü[AgdaãCheck whether the type is actually an equality (lhs áD rhs) and extract lhs, rhs, and their type.Precondition: type is reduced.ý[Agda Revert the Ú6.Postcondition: type is reduced.þ[Agda(Primitives with typechecking constrants.Àœ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåõRöRŒZ‘Z�Z�Z�ZŽZ’Z–Z•Z“Z”Z—Z˜Z™ZšZ›ZœZ�ZžZŸZ Z¡Z¢Z£Z¤Z¥Z¦Z§Z¨Z©ZªZ«Z¬Z­Z®Z¯Z°Z±Z²Z³Z´ZµZ¶Z·Z¸Z¹ZºZ»Z¼Z½Z¾Z¿ZÀZÁZÂZÃZÄZÅZÆZÇZÈZÉZÊZËZÌZÍZÎZÏZÐZÑZÒZÓZÔZÕZÖZ×ZØZÙZÚZÛZÜZÝZÞZßZàZáZâZãZäZåZæZçZèZéZêZëZìZíZîZïZðZñZòZóZôZõZöZ÷ZøZùZúZûZüZýZþZÿZ€[�[‚[ƒ[„[…[†[‡[ˆ[‰[Š[‹[Œ[�[Ž[�[�[‘[’[“[”[•[–[—[˜[™[š[›[œ[�[ž[Ÿ[ [¡[¢[£[¤[¥[¦[§[¨[©[ª[«[¬[­[®[¯[°[±[²[³[´[µ[¶[·[¸[¹[º[»[¼[½[¾[¿[À[Á[Â[Ã[Ä[Å[Æ[Ç[È[É[Ê[Ë[Ì[Í[Î[Ï[Ð[Ñ[Ò[Ó[Ô[Õ[Ö[×[Ø[Ù[Ú[Û[Ü[Ý[Þ[ß[à[á[â[ã[ä[å[æ[ç[è[é[ê[ë[ì[í[î[ï[ð[ñ[ò[ó[ô[õ[ö[÷[ø[ù[ú[û[ü[ý[þ[ÿ[öõRöRŒZ‘Z�Z�Z�ZŽZ’Z–Z•Z“Z”Z—Z˜Z™ZšZ›ZœZ�ZžZŸZ Z¡Z¢Z£Z¤Z¥Z¦Z§Z¨Z©ZªZ«Z¬Z­Z®Z¯Z°Z±Z²Z³Z´ZµZ¶Z·Z¸Z¹ZºZ»Z¼Z½Z¾Z¿ZÀZÁZÂZÃZÄZÅZÆZÇZÈZÉZÊZËZÌZÍZÎZÏZÐZÑZÒZÓZÔZÕZÖZ×ZØZÙZÚZÛZÜZÝZÞZßZàZáZâZãZäZåZæZçZèZéZêZëZìZíZîZïZðZñZòZóZôZõZöZ÷ZøZùZúZûZüZýZþZÿZ€[�[‚[ƒ[„[…[†[‡[ˆ[‰[Š[‹[Œ[�[Ž[�[�[‘[’[“[”[•[–[—[˜[™[š[›[œ[�[ž[Ÿ[ [¡[¢[£[¤[¥[¦[§[¨[©[ª[«[¬[­[®[¯[°[±[²[³[´[µ[¶[·[¸[¹[º[»[¼[½[¾[¿[À[Á[Â[Ã[Ä[Å[Æ[Ç[È[É[Ê[Ë[Ì[Í[Î[Ï[Ð[Ñ[Ò[Ó[Ô[Õ[Ö[×[Ø[Ù[Ú[Û[Ü[Ý[Þ[ß[à[á[â[ã[ä[å[æ[ç[è[é[ê[ë[ì[í[î[ï[ð[ñ[ò[ó[ô[õ[ö[÷[ø[ù[ú[û[ü[ý[þ[ÿ[× Safe-Inferred"!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛßâãêÆÀÀSAgdaïLookup the definition of a name. The result is a closed thing, all free variables have been abstracted over.ÁSAgda Version that reports exceptions:ÂSAgda4Lookup the rewrite rules with the given head symbol.ÃSAgdaSignature lookup errors.ÄSAgda8The name is not in the signature; default error message.ÅSAgda0The name is not available, since it is abstract.ÆSAgdaLookup a section telescope.ßIf it doesn't exist, like in hierarchical top-level modules, the section telescope is empty.ÇSAgdaÂUnless all variables in the context are module parameters, create a fresh module to capture the non-module parameters. Used when unquoting to make sure generated definitions work properly.µ^AgdaÃAdd a constant to the signature. Lifts the definition to top level.¶^AgdaA combination of µ^ and •L. The ¨ does not need to be supplied.·^Agda2Set termination info of a defined function symbol.¸^Agda1Set CompiledClauses of a defined function symbol.¹^Agda+Set SplitTree of a defined function symbol.º^Agda!Modify the clauses of a function.»^AgdaÐLifts clauses to the top-level and adds them to definition. Also adjusts the funCopatternLHS field if necessary.½^Agda#Add a compiler pragma `{-# COMPILE  backend  name  text #-}`Ä^AgdaAdd a section to the signature.ÛThe current context will be stored as the cumulative module parameters for this section.Å^AgdaÃSets the checkpoint for the given module to the current checkpoint.Æ^AgdaGet a section.³Why Maybe? The reason is that we look up all prefixes of a module to compute number of parameters, and for hierarchical top-level modules, A.B.C say, A and A.B do not exist.Ç^AgdaAdd display forms for a name f0 copied by a module application. Essentially if f can reduce to » xs ’C A.B.C.f vs (by unfolding module application copies (âH), then we add a display form A.B.C.f vs ==> f xs È^Agda>Module application (followed by module parameter abstraction).Ê^AgdaÌAdd a display form to a definition (could be in this or imported signature).Í^AgdaÃFind all names used (recursively) by display forms of a given name.Î^Agda#Check if a display form is looping.Ñ^AgdaÎCan be called on either a (co)datatype, a record type or a (co)constructor.Ò^Agda?Does the given constructor come from a single-constructor type?5Precondition: The name has to refer to a constructor.Ó^AgdaStandard eliminator for ÃS.Ô^AgdaThe computation ÀS sometimes tweaks the returned ÕH, depending on the current ¨ and the ¨ of the ÕH. This variant of ÀS does not perform any tweaks.Ö^AgdaàGet the original name of the projection (the current one could be from a module application).Ù^Agda%Look up the polarity of a definition.Ú^AgdaÍLook up polarity of a definition and compose with polarity represented by �.Û^Agda!Set the polarity of a definition.Ü^Agda-Look up the forced arguments of a definition.Ý^Agda*Get argument occurrence info for argument i of definition d (never fails).Þ^Agda Sets the ÛHÉ for the given identifier (which should already exist in the signature).ã^AgdaReturns a list of length ™HË. If no erasure analysis has been performed yet, this will be a list of �s.ç^Agda#add data constructors to a datatypeè^AgdaÆGet the mutually recursive identifiers of a symbol from the signature.é^Agda.Get the mutually recursive identifiers from a ÕH.ê^Agda'Set the mutually recursive identifiers.ë^Agda5Check whether two definitions are mutually recursive.ì^Agda A functiondataÖrecord definition is nonRecursive if it is not even mutually recursive with itself.í^Agda3Get the number of parameters to the current module.ï^Agda×Compute the number of free variables of a defined name. This is the sum of number of parameters shared with the current module and the number of anonymous variables (if the name comes from a let-bound module).ò^Agda7Compute the context variables to apply a definition to.±We have to insert the module telescope of the common prefix of the current module and the module where the definition comes from. (Properly raised to the current context.) Example: � module M�A “ where module M�A ” where f = ... module MƒA ˜ where ... M�A.M‚A.f [insert “ raised by ˜] ó^AgdaÐInstantiate a closed definition with the correct part of the current context.ö^Agda'Give the abstract view of a definition.÷^AgdaÏEnter abstract mode. Abstract definition in the current module are transparent.ø^Agda:Not in abstract mode. All abstract definitions are opaque.ù^Agda?Ignore abstract mode. All abstract definitions are transparent.ú^AgdaåEnter concrete or abstract mode depending on whether the given identifier is concrete or abstract.û^AgdaÍCheck whether a name might have to be treated abstractly (either if we're ÷^ä or it's not a local name). Returns true for things not declared abstract as well, but for those ö^ will have no effect.ü^AgdaAndreas, 2015-07-01: If the currentþ module is a weak suffix of the identifier module, we can see through its abstract definition if we are abstract. (Then treatAbstractly' returns False). Semigroup (TCM a).1ËSÌSÍSÎSÏSÐSÑSÒSÓSÔSÕSÖS×SØSÙSÚSÛS¦]£e¤e¥e¦e§e¨e©eªe«e¬e­e®e¯e°e±e²e³e´eµe¶e·e¸e¹eºe»e¼e½e¾e¿e1ËSÌSÍSÎSÏSÐSÑSÒSÓSÔSÕSÖS×SØSÙSÚSÛS£e¤e¥e¦e§e¨e©eªe«e¬e­e®e¯e°e±e²e³e´eµe¶e·e¸e¹eºe»e¼e½e¾e¿e¦]ÓS5ÔS6ÕS6±e5ô Safe-Inferred!!$%&.145789:;ÀÁÂÃÄÆÈËÐÓÖÙÛâãê1ÃdAgdaCreate a concrete name that is not yet in scope. | NOTE: See  chooseName in *Agda.Syntax.Translation.AbstractToConcrete! for similar logic. | NOTE: See withName in +Agda.Syntax.Translation.ReflectedToAbstract for similar logic.€]Agda?Look up the abstract name referred to by a given concrete name.�]AgdaÖLook up the abstract name corresponding to a concrete name of a certain kind and/or from a given set of names. Sometimes we know already that we are dealing with a constructor or pattern synonym (e.g. when we have parsed a pattern). Then, we can ignore conflicting definitions of that name of a different kind. (See issue 822.)ƒ]AgdaîTest if a given abstract name can appear with a suffix. Currently only true for the names of builtin sorts Set and Prop.„]AgdaLook up a module in the scope.…]Agda'Get the fixity of a not yet bound name.†]Agda+Get the polarities of a not yet bound name.‡]AgdaùCollect the fixity/syntax declarations and polarity pragmas from the list of declarations and store them in the scope.ˆ]Agda?Get the notation of a name. The name is assumed to be in scope.‰]AgdaBind a variable.Š]Agda;Temporarily unbind a variable. Used for non-recursive lets.‹]Agda.Bind a defined name. Must not shadow anything.�]AgdaBind a name. Returns the ±D" if exists, but does not throw it.Ž]AgdaýRebind a name. Use with care! Ulf, 2014-06-29: Currently used to rebind the name defined by an unquoteDecl, which is a þ. in the body, but a Ö. later on.�]AgdaBind a module name.�]AgdaÈBind a qualified module name. Adds it to the imports field of the scope.‘]Agda Clear the scope of any no names.“]Agda–Create a new scope with the given name from an old scope. Renames public names in the old scope to match the new name and returns the renamings.”]Agda*Warn about useless fixity declarations in renaming8 directives. Monadic for the sake of error reporting.•]Agda>Check that an import directive doesn't contain repeated names.–]AgdaÓApply an import directive and check that all the names mentioned actually exist.(Monadic for the sake of error reporting.—]AgdaTranslation of ImportDirective.˜]Agda Create a Ó\.™]AgdaApply a Ó\.š]AgdaTranslation of Renaming.œ]AgdaOpen a module.�]Agda>Open a module, possibly given an already resolved module name.÷\AgdaOld local scopeAgdaNew local scope‚]Agda(Restrict search to these kinds of names.AgdaUnless é~., restrict search to match any of these names.AgdaName to be resolvedAgda