From 0943d38926131c83a380ef677db35f39aca99752 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Wed, 8 Dec 2021 11:12:05 +0900 Subject: [PATCH] implementation of "replacewith" compiler directive --- CONTRIBUTING.md | 25 +++++++++---- assets/devanagari_bengali_variable.tga | Bin 327698 -> 131 bytes assets/latinExtA_variable.tga | 2 +- assets/latinExtB_variable.tga | 2 +- .../torvald/terrarumsansbitmap/GlyphProps.kt | 23 +++++++++--- .../gdx/TerrarumSansBitmap.kt | 34 ++++++++++++------ .../gdx/TerrarumTypewriterBitmap.kt | 2 +- testing.PNG | Bin 20362 -> 16044 bytes testtext.txt | 27 ++++---------- work_files/devanagari_bengali_variable.psd | Bin 323359 -> 131 bytes work_files/latinExtA_variable.psd | 4 +-- work_files/latinExtB_variable.psd | 4 +-- 12 files changed, 76 insertions(+), 47 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e76ee98..cf35ae2 100755 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -49,12 +49,12 @@ Rightmost vertical column (should be 20 px tall) contains the tags. Tags are def m --Is this character lowheight? K -, K |= Tags used by the "Keming Machine" - K | - K -' ,- Nudging Bits (see below) - n --' - X -, - X |= Diacritics Anchor Points (see below) + K -' + Q ---Compiler Directive (see below) + n --, + X -, `-Nudging Bits (see below) X | + X |= Diacritics Anchor Points (see below) X -' A -,_ 0 Align 1 Align 0 Align 1 Align before A -' 0 left 0 right 1 centre 1 the glyph @@ -93,6 +93,20 @@ MSB for each word must be set so that the pixel would appear brighter on the ima Right now, only the type-0 diacritics and its anchor point is used by the font. +* Compiler Directives: + + [Opcode] [arg1] [arg2] + +Currently supported opcodes: + + - 00000000: No-operation; does not use the Compiler Directive system. + + - 10000xxx: Replace a character with xxx subchars (yes, number 0 can be used). + Replacement characters are encoded vertically from X-zero, bit by bit + (colour of the pixel doesn't matter) with LSB sitting on Y-zero. + + + -= NOTE =- The code has remnants of one old HACK: using 0th diacritics' X-anchor pos as a type selector @@ -102,7 +116,6 @@ Interpretation: DIA_OVERLAY = 1 DIA_JOINER = 2 - ``` #### Stack Up/Down diff --git a/assets/devanagari_bengali_variable.tga b/assets/devanagari_bengali_variable.tga index 083b632d535bb25b45ccb2b0b7e4bbaf3683ef4c..98b89a2c6110430b6a1a21a63391fa265590c7b3 100755 GIT binary patch literal 131 zcmWN{yAi`63;@ucDOex|1W3l)@D1E0u`j|dGJRaV=3Vv6WB;I# z(~|eM;-hAD8L^KdxkvE01?#lN2HF^O5sGsOD#T=S4pA3sAvLcZ)R2rOQ?P<1k8LHS Ob|=B(SEU8Qu!=wKfhRZs literal 327698 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

cZRF!_^o($gueT2XvuIA}5bulZ8}jxZ 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 G!2b{FlK0~P diff --git a/assets/latinExtA_variable.tga b/assets/latinExtA_variable.tga index fc54ad8..1a6eaee 100755 --- a/assets/latinExtA_variable.tga +++ b/assets/latinExtA_variable.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7d8457b67ae813c4a77a173023927f2aeb923afb0cf74d2c5a83a282c86217c2 +oid sha256:278c6cf9e08d896653db77bbd78dcfb2cc132a13637f882548ddca148aee64f3 size 163858 diff --git a/assets/latinExtB_variable.tga b/assets/latinExtB_variable.tga index 015b614..3de01b0 100755 --- a/assets/latinExtB_variable.tga +++ b/assets/latinExtB_variable.tga @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7f433c74fe7cacdf01df12c4bd18991bfef4128b7b882c34f864b2464d3c705a +oid sha256:587aa0491704f6bffb0cf741d4fd18aad8c1929d3b559a7bd738de5b65f541f9 size 266258 diff --git a/src/net/torvald/terrarumsansbitmap/GlyphProps.kt b/src/net/torvald/terrarumsansbitmap/GlyphProps.kt index 7ce8e74..14ce5cc 100755 --- a/src/net/torvald/terrarumsansbitmap/GlyphProps.kt +++ b/src/net/torvald/terrarumsansbitmap/GlyphProps.kt @@ -23,12 +23,16 @@ data class GlyphProps( val stackWhere: Int = 0, // STACK_UP..STACK_UP_N_DOWN - val extInfo: IntArray = DEFAULT_EXTINFO, + val extInfo: IntArray = IntArray(15), val hasKernData: Boolean = false, val isKernYtype: Boolean = false, val kerningMask: Int = 255, + val directiveOpcode: Int = 0, // 8-bits wide + val directiveArg1: Int = 0, // 8-bits wide + val directiveArg2: Int = 0, // 8-bits wide + val rtl: Boolean = false, ) { companion object { @@ -46,8 +50,6 @@ data class GlyphProps( const val DIA_JOINER = 2 private fun Boolean.toInt() = if (this) 1 else 0 - - val DEFAULT_EXTINFO = IntArray(15) } /*constructor(width: Int, tags: Int) : this( @@ -109,5 +111,18 @@ data class GlyphProps( return other is GlyphProps && this.hashCode() == other.hashCode() } - fun requiredExtInfoCount() = if (stackWhere == STACK_BEFORE_N_AFTER) 2 else 0 + fun requiredExtInfoCount() = + if (stackWhere == STACK_BEFORE_N_AFTER) + 2 + else if (directiveOpcode in 0b10000_000..0b10000_111) + directiveOpcode and 7 + else 0 + + fun isPragma(pragma: String) = when (pragma) { + "replacewith" -> directiveOpcode in 0b10000_000..0b10000_111 + else -> false + } + + fun forEachExtInfo(action: (Int) -> Unit) = extInfo.slice(0 until requiredExtInfoCount()).forEach(action) + fun forEachExtInfoIndexed(action: (Int, Int) -> Unit) = extInfo.slice(0 until requiredExtInfoCount()).forEachIndexed(action) } \ No newline at end of file diff --git a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt index 84f9ece..0d79da8 100755 --- a/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt +++ b/src/net/torvald/terrarumsansbitmap/gdx/TerrarumSansBitmap.kt @@ -702,6 +702,7 @@ class TerrarumSansBitmap( } private fun Boolean.toInt() = if (this) 1 else 0 + /** @return THIRTY-TWO bit number: this includes alpha channel value; or 0 if alpha is zero */ private fun Int.tagify() = if (this and 255 == 0) 0 else this private fun buildWidthTable(pixmap: Pixmap, codeRange: Iterable, cols: Int = 16) { @@ -725,7 +726,6 @@ class TerrarumSansBitmap( val kerningBit1 = pixmap.getPixel(codeStartX, codeStartY + 6).tagify() val kerningBit2 = pixmap.getPixel(codeStartX, codeStartY + 7).tagify() val kerningBit3 = pixmap.getPixel(codeStartX, codeStartY + 8).tagify() - val kerningBit4 = pixmap.getPixel(codeStartX, codeStartY + 9).tagify() var isKernYtype = ((kerningBit1 and 0x80000000.toInt()) != 0) var kerningMask = kerningBit1.ushr(8).and(0xFFFFFF) val hasKernData = kerningBit1 and 255 != 0//(kerningBit1 and 255 != 0 && kerningMask != 0xFFFF) @@ -734,6 +734,12 @@ class TerrarumSansBitmap( kerningMask = 255 } + val compilerDirectives = pixmap.getPixel(codeStartX, codeStartY + 9).tagify() + val directiveOpcode = compilerDirectives.ushr(24).and(255) + val directiveArg1 = compilerDirectives.ushr(16).and(255) + val directiveArg2 = compilerDirectives.ushr(8).and(255) + + val nudgingBits = pixmap.getPixel(codeStartX, codeStartY + 10).tagify() val nudgeX = nudgingBits.ushr(24).toByte().toInt() // signed 8-bit int val nudgeY = nudgingBits.ushr(16).toByte().toInt() // signed 8-bit int @@ -762,7 +768,7 @@ class TerrarumSansBitmap( val stackWhere = (0..1).fold(0) { acc, y -> acc or ((pixmap.getPixel(codeStartX, codeStartY + y + 18).and(255) != 0).toInt() shl y) } - glyphProps[code] = GlyphProps(width, isLowHeight, nudgeX, nudgeY, diacriticsAnchors, alignWhere, writeOnTop, stackWhere, GlyphProps.DEFAULT_EXTINFO, hasKernData, isKernYtype, kerningMask) + glyphProps[code] = GlyphProps(width, isLowHeight, nudgeX, nudgeY, diacriticsAnchors, alignWhere, writeOnTop, stackWhere, IntArray(15), hasKernData, isKernYtype, kerningMask, directiveOpcode, directiveArg1, directiveArg2) // if (nudgingBits != 0) dbgprn("${code.charInfo()} nudgeX=$nudgeX, nudgeY=$nudgeY, nudgingBits=0x${nudgingBits.toString(16)}") // if (writeOnTop >= 0) dbgprn("WriteOnTop: ${code.charInfo()} (Type-${writeOnTop})") @@ -770,6 +776,7 @@ class TerrarumSansBitmap( // extra info val extCount = glyphProps[code]?.requiredExtInfoCount() ?: 0 if (extCount > 0) { + for (x in 0 until extCount) { var info = 0 for (y in 0..18) { @@ -781,6 +788,9 @@ class TerrarumSansBitmap( glyphProps[code]!!.extInfo[x] = info } + +// println("[TerrarumSansBitmap] char with $extCount extra info: ${code.charInfo()}; opcode: ${directiveOpcode.toString(16)}") +// println("contents: ${glyphProps[code]!!.extInfo.map { it.toString(16) }.joinToString()}") } } @@ -1102,18 +1112,22 @@ class TerrarumSansBitmap( else if (diacriticDotRemoval.containsKey(c) && (glyphProps[cNext]?.writeOnTop ?: -1) >= 0 && glyphProps[cNext]?.stackWhere == GlyphProps.STACK_UP) { seq.add(diacriticDotRemoval[c]!!) } - // rearrange {letter, before-and-after diacritics} as {letter, before-diacritics, after-diacritics} - // {letter, before-diacritics} part will be dealt with swapping code below - // DOES NOT WORK if said diacritics has codepoint > 0xFFFF - else if (i < this.lastIndex && this[i + 1] <= 0xFFFF && - glyphProps[this[i + 1]]?.stackWhere == GlyphProps.STACK_BEFORE_N_AFTER) { + // rearrange {letter, before-and-after diacritics} as {before-diacritics, letter, after-diacritics} + else if (i < this.lastIndex && glyphProps[this[i + 1]]?.stackWhere == GlyphProps.STACK_BEFORE_N_AFTER) { val diacriticsProp = glyphProps[this[i + 1]]!! + seq.add(diacriticsProp.extInfo[0]) seq.add(c) - seq.add(diacriticsProp.extInfo!![0]) - seq.add(diacriticsProp.extInfo!![1]) + seq.add(diacriticsProp.extInfo[1]) i++ } + else if (glyphProps[c]?.isPragma("replacewith") == true) { +// println("[TerrarumSansBitmap] replacing ${c.toString(16)} with:") + glyphProps[c]!!.forEachExtInfo { +// println("${it.charInfo()}") + seq.add(it) + } + } // U+007F is DEL originally, but this font stores bitmap of Replacement Character (U+FFFD) // to this position. This line will replace U+FFFD into U+007F. else if (c == 0xFFFD) { @@ -1390,7 +1404,7 @@ class TerrarumSansBitmap( if (it.first.matches(maskL!!) && it.second.matches(maskR!!)) { val contraction = if (glyphProps[prevChar]?.isKernYtype == true || glyphProps[thisChar]?.isKernYtype == true) it.yy else it.bb -// dbgprn("Kerning rule match #${index+1}: ${prevChar.toChar()}${thisChar.toChar()}, Rule:${it.first.s} ${it.second.s}; Contraction: $contraction") + dbgprn("Kerning rule match #${index+1}: ${prevChar.toChar()}${thisChar.toChar()}, Rule:${it.first.s} ${it.second.s}; Contraction: $contraction") return -contraction } diff --git a/src/net/torvald/terrarumtypewriterbitmap/gdx/TerrarumTypewriterBitmap.kt b/src/net/torvald/terrarumtypewriterbitmap/gdx/TerrarumTypewriterBitmap.kt index 0a2e8d0..3690a1a 100644 --- a/src/net/torvald/terrarumtypewriterbitmap/gdx/TerrarumTypewriterBitmap.kt +++ b/src/net/torvald/terrarumtypewriterbitmap/gdx/TerrarumTypewriterBitmap.kt @@ -252,7 +252,7 @@ class TerrarumTypewriterBitmap( val stackWhere = (0..1).fold(0) { acc, y -> acc or ((pixmap.getPixel(codeStartX, codeStartY + y + 18).and(255) != 0).toInt() shl y) } - glyphProps[code] = GlyphProps(width, isLowHeight, nudgeX, nudgeY, diacriticsAnchors, alignWhere, writeOnTop, stackWhere, GlyphProps.DEFAULT_EXTINFO, hasKernData, isKernYtype, kerningMask) + glyphProps[code] = GlyphProps(width, isLowHeight, nudgeX, nudgeY, diacriticsAnchors, alignWhere, writeOnTop, stackWhere, IntArray(15), hasKernData, isKernYtype, kerningMask) // if (nudgingBits != 0) println("${code.charInfo()} nudgeX=$nudgeX, nudgeY=$nudgeY, nudgingBits=0x${nudgingBits.toString(16)}") diff --git a/testing.PNG b/testing.PNG index edbaa2ce8672bfb42e4c673d510ba4f245e96879..44c2e2fa18044f6ae73f4790f07f2983fba99f8b 100755 GIT binary patch literal 16044 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 AiU0rr literal 20362 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 NNX-7N(t<^F;s^KvCqn=L literal 323359 zcmeEP2Y_8g)t)Ws3xp66kcChLL_twm5Jf|gx=0aG5tSH15eOKX*w&>BD1wRw8xafY zFN#v+$C3adij+uEK_w^%0!kn~*?s@_oipdo-23i(``(t2@DJhcoqFb+GiPSLId|@T zJMVtb+g*#(|Jt2vnTpG~v93*%I!@ks_k9m&dq!dt-9EUt;Ge%UuYDcnbs(ij4$e)Re#*%QynU}jS!3U~?lI*Q6k^!_ zhlUqFpxpd%yL}FtGQ~0)ysta`H+B0TxT8PiU2uDyflr_PvuEW)orxMS9#hwOpyo1o~9W1{c}qVTCR zJ`6sc+vB8@&zyDKF~^=dWt-`*n6kqg-mvqOeP*0-!i-Z--R_`i(~qAv>!>MvoOI&J z(`KIOoXX5vZW47n1xoJP;SF6~+r4&ss6YF!Ze~`het>uqtGUMnOvu4ahQ-{IIj+=Q5x_jnP$DMlINi(M$H?vj`53*Xs1A}VU2&{Ki zznlF2?cKz?C%d+1?sVk{Td>uJ0S-*9UJIrz9y>rulsof)teEFOE(|QS_t*0D! z%oHZ?amb-lrk^(JbcQh|_-B+G@78gX-G*)xw}sorZRcL=c5-iYQ{7wLe(pebsC&12 zpPTNEbtk%6?hN-a*Xz!67rD>6FSxI`Z@8=6)$T{`T6crH+0Ajkald!>xcl8h?h*Hx zd&)iQ7P}QKEiGeO)@oU=Wy6+DTVCGs%9hu*?A-F^mbbQaw;a;)?v^84j%k_Ma$3vB zTF!2{sO7Sjue4m*a&^m3T7KR#r{#{8dt3h8GQZ`?mgicQx3;x*v`%jAY~8B$)vY_X z?$)}0>!GdhZ9S&-L#-caJ*V|EtzT-L-TK4U>s#lv{=W78)<;^OYF*Uk+9tHE-?mxX zc5OSi?a_8%+u?0Tx6Nw%MB9aJm$%Js`%&9XZMV1mvF(wzr`wjbk8WSDeMG@M!$RX2S;zaD+>=zok} zG-k}04adB4%&ub&95ZdqsbkI?^W`x=9P_I&^Ts?jX6e`oV>cc9+Od0$J$&rUv1g6F zeC+qf{&MWRvHu#oV%)@WFCVwdxC6%>HSWxDmyEk=+)d-|9{1R|730?(zxDWC#~(WW zgX4S0e`)-W#@{yn;qlK;m@r}U32&Hi@Py+gd~(8vew_$TDtanYj3~yzH1+~cF)>Z ztbP63^Va^)I^))P`8vC;^S*UHvd-n}{B)hW*Liy4xQSa$++*UjiJzEw#l)Xad~o8T zb=O;WhjkBJ_r!HCUibU!-m&fzlg3QiYSLRL9X08kN#B}u%cOs-*S6jk>+P}L^!3hO z@2d4~Tko;SqbF}YdEdz&oP5#b|CxN(z}axCF@_i{sZeTe`)7ScYEoKmwxJ{KYHoBmoC}hWgAT0V8#X)Zg9;8_iwO#!zmlS zb;IK~ymZ4GHvH>G?Hg^o(ZL&?vC-Ezx^1JUUpDz=Z+zMGmtFX>YhU)4jaxU~cH=`f z{^-Wv+W5|m7jn4D z^0-%i?UnbwYSgRV@T!@wn*FK=x9iw$x9v{f?g!h=-+uk=ySG1U`y00Z&#Sk5_2I9+ z^wqb&y8kshzUGA2T=klVc9^uoemk7C!%aIp_u6e=JN>m+y!O7=t@XOSUf1)w8(+8J z^{;&WjMsnt^?%xNy&VtO@%$aae%YWav-5Za8 zd+f5u$M^X4o^5;Xz2}8{-u2c=Z+*vGzw*|* znQyz{KzHE22Y&9rzaF&pK_5Eke-9pg@IeP(aq#1Z>~P4(4!Qm9>%IN`Z~y+=7azL& zp_d%`&^xwy$7%1Fd)PXM9dX#zhb?*Mp6|TuosYch)$jWFyMF)fjoy9SyKg*v%;AR} z{++`Yz2~j(`NDf1J7UKp&O73P_ip{(55M=0_igmP6W;fW_pkH*Y488(k)w`$=aJt( za^X8h~uU5~!(=qHZZ^_b5c z^W?E_Irj2npFVDn4(?-@XQb2dFHlfe(KDBePpkXeEXyAAD#ZuxgXo?W4#}n|MA^Ee&r`x zKJkH1%dYzu>qF?)ud0KK12K^6$vzjxWXmwn{2e|+wM&t3odDWAXa^9#T5{x95d`RgzL z#uvwb@w6{K@}=%C-T37#zx>%Rul&lfU%CH^-LJUjs~dmyQ(s;3wWGc^@9R^){-bYn ze&eEVEdSB{;kp9I{jOZUv=13w|{%*Z(seLjlOfycly3N^Sh6H z?~w1^di73MU;X`!zkkUOT7Pib51#zt5kI`=fA;*J8-KLjkFLCC{cA4zvHS69KmPYm zj{M03*Y1Dq+@J3J(;xlp z*1K-o|F+-$X0PAea{F$#|LV89{`TfOcDdu{zuWnDH~hZq_t)RKo|y$`(Ofj>QX#DkCg>8L+F z@#ho%yx=dV|7FEPpL}@K!x#Q_;$JWS+s1#J{r6Y={hCL*9{I)mJ?G!~=-VHC=pWPn z@zg(0`RB^V&Ut*T$1nfarvJM7iPt`H^OJi$dC$M!^Y6!=I{B#;PoMY9y3c&|KimB0 zXaAl0-#edu*Rzi;n6;qt+{Mpt`22SlzJB4{MF%bV+u{=!uUK;7(hZk>Z`sbvZeRY+ z<^Ni7#>z1(zts1NzMJ~@?|-;*Vx{6*ub+$SN0sG-0{Wldm9!(*jX8^H-<|u89)zHxG%wf+#6gA zxWawU-A-Bpmf(MHV@voSEw#AN5~6WSC!IcH)(O+jtZL~bce=E5g0#pwASM5O1Ai;p z(&iJH(sn)b@E4@pt`99q>0RV6{)|6r#_7{$PCI7WtmA|mFV{xMn&6H?Tc@L?nYfO@ zHOo|w?f<8@C2r{T_tT^C2d|+Xfx>X12bkGGwp=qs-*h>+M6jYo#0y{ zQS1m?-YkNO9w(m6#0ksU()gR%(pqhWmbmMZ|3;m0+)<|j)<-Q-H=}{_j)Qck0`u8_ zg;pjV#*8tte;mIbTN%H9XhnK!Ppi5XH&s(kI(kZVYg15WZMTOz$(;-fnS%S#_#3z0 z0+5>iB@Mh_8tAR0e@O#L14#q_KQ#axG1cvkHF$UTNe7^ff4_F$baR2<_;0S8jhsty zO-<#JUPi(Wo^!5qC|AGh?^-y7YY7~lz3%x==bjtFKc&P8Vk!t_WAjMdTXYD z*KvBZogQsB^FBDuCV3>2M{?D=A*0q-GY8&_j-BL@OdiSPk!%J@4Qtso7WyV2nSf*h zlFfcoG6Bg5+O68)iw?Q1W&$N3nSf*hlEVrPn<18fWO}rn9&Oiou_XR*cY3s)9&Hc$ zOX#Z^?t0O&lYnFbk_kvQgZ+lJYyy%ANG2eefMn@g>M@9p!|9A-G{^l!4E^bv=W;+hWj^ZhKC+FOy7}A z-;s>ZMaJQDMlzj|T+JtQERfMf!a&0xP_Et`O3dbFJ$ zZLhLN+pfh;b-TNET%UA5mVdu?-*j``weoMSn~j`HaZOF-l3qr_4w~J%6w9Zr%*yU% z3Ui}f!Wt2529~F?X)7~=8xwmV+xRazg+nJJarj}RY4Q;-PY!kQ+`_N|_>m&E#%>JO zJRK*Wc={xM`Xqkr?`|ZVeBv({=uF_Sd2rZ_&XP}j1fgdFk|PBf%jqT{>2PRvWKpTt zaRQPFNG2fJ2zZRkBp{i9{;OOPbBlMS8B=bq(o)VvFY6iPs{^vj;<*WS~wy{BJ$ z#|sNhztq19uxbL52}mX&*$nm@*0Kpmrtbz+dpHx2OhB@ZLppuQG=0f*weyN5Aen$< z0+PcD4x1sCfMf!a2}srfP5GzwLwc;u$KvVHwtT*a4tajYXRvpk*~0Hh4g$};VAWQE zQ||wD6A4HrAen$!V1SOSs>NG2eefMf!a2}mX&$uBFtAb`|9;?ekz7OvVFK`$fm zoyU=;36PV%BbmM*rB{| zlfEOFz9X5wBZ=3nsy{*Wf&jn(uxfv7ypb}t93&t)5}+~x$yN4)gXuex={u6qFXbd4 zS?Zxn-;qq;ksS2v;{UG?Fs=gO6Oc@gw$r2SW}Ze5Ygu~7uw_a>G6Bg1B;z-e%fbmr zCLo!BWQjL$72w1Hn@B)10m%d;hZP()Lo5NwbVf3rkxXYKOFghw@N83ENvBtu(fo&1)MB>=pISe;-6C6drJGLarc=7B`ZRAiX*?2Jjgh8F=gS)T z;D62A7_505dsl?`|JSfEH@xNq39neKP9cuG^txA-pLpn7nFJ(<_M1u^HvCN{E^O(y zl~%_eT_5le#7Gqw7T9IR@9*l4>!o{@NM|}+F-QbEQUEH^^&1O4CAVq;U|5KT)^4MK?u9BB zWNDp$>fn7B!Z1FPYS9Naai?`fMf!a>AL|#$FPH>u*O2) z1SCh$OPPRV0+MyUrI5ZGkiHv`z8jFf8!*z3q=$<>m$T&G8(C*z0+Q(iROtg$bwHDS zGaz{+^(&^yBbhvsBj8UQx^pslB$G!nc_atvPaJx+1SAuXOh7UL$x;t&45H(3@<=9+ zWb#NRkK}N93`d$y@<^taZK}_kdgz-TZKp@uwO_5Ne(Q#2GxV2C(izF*kxU-RC9jrH%1?DO+xR5)PS1SG3Hh|RxFQ@;juoZi|Fk8;f$ zm%byJex!5IuZs`;;ccQ&55cBK+v(AEdbB+td>W|&Yb^9l9?9g9Odd&o(x;g#eg0>V z{=}hIOE9n=3>><45|B(lG6Bhv!ifXYO+Yf8k*xM`CXZz4nZe|dOdiSPk;IQtuZ|zE zOh7UL$pj<^1bib^AOXn)BomNKFWZy?XM3byyr-9K(#tmKWt;S}%}Bo_GhFoP7fGN0 z8QJ5D2}mX&nSf*hk_kw54+0!E^T2!P4{sBNdalsqkxU-Rv8j{q>~A z@;=teSXpV%17V?$hJ?PvSzT-NNt}`X3K|JfE*;e@|-<C;$3xJGYTr+r8NxfPe3Hhq@2A!|?Cz?s&JaTOa@0<=Ctdfb`rboUuI&5gxBEoXnbQU7Rnf}7<&?oPqq&>aFwdn2^3dkxy!3YYQ5`z~&Gw0x+vcQ8u6!|jKf6Cv+p1PA+#?fJ_58Rx{ehvujgTE_v4xa+xs@|kGqv(e6F(C-xuQkPn5ik_U$S^ z^T|t)^rTyk*z*X@!~Hk7e(Xv9+x;A|+i-mo*T3Dbk=}=kO@{jl^!L)r^6XlKyu}zu zOHeLcE8Q45?qvo`SE?ZyIJK}WVg|j3jeQgeU(MH zSesN9Y5@jo6T1hw|1nC!&?099*(_Om8W*W7h3uoy6#gxRwmGGoJ23 zw-SV;aVlvUu2|wgQ#*kr*a>!*iY7cI?FVy9boTRMPG!CY)+5F0?jXH79YxC2hOxtY zpBqJWux14cslXJRTvnJB7Q1>%rYTgDRsNP!2w|NXsi1eYEXyx}9cX{E&$a(`re)hE zrRkAzO1y#$lcee?kW&`s_+l(dQFzaXMcFG&>?IZmhMjfe3aLxYFV?=Lg|iu6%lv?{ zKD2wTFLkk~paQ6fvFV+*XoQx#Py5(4xzvlHuIF)G8>KFDz3!~+0%MiGNiJKcRC?W= zj%uP+QfAH%Y>905x!-f}aj65&#lhP8XhFWJirqL2rlY?lG;{iG;wn;-Yd7pF3JuhNbOJthi7$A#^ zpK`J`quV~Q$v&|X#aEmHDE%VbDH*lErfj6CR)iBBS`xHU%QEdQMtx`sHO&h9w7*x1 z9Z9WP!3wdSv^|D5{140G5F{y64OLH3siq}avuaH&YhANQYLb1JI{wm32DG&?=E>nY942B^o`SFvL*&@4A8xV6MKb-DVZF)ETEEkBxrN2=#q(1(Gi|w)@Dx6ad zTllY}i#=%n_o1ICf3Lex#O`&U%4XCl?#rbqn6XsOH{};cZHF8x zwI*6oTca7VGDr3Tv=mxdjCqfUiJZ|S$Q5m}To@Qc1;xd3mS%H@NfO$k${8c0&t=N9 za_k75`n3c(Ta2}E39h{Ibo8wt1(~m`1*2qfbRTHMGQ<;twq~ueg=fK^ALeAl8YS5n zACj?^8T;0lHE#Fiwj8pXNJ^#G3ExO-dPVZ7Ta`IXdKwq5IO%{nrmT>Kq~B{s7c4TI zHL3O}>xy zX8cM^w9EO*$nd`0PecTSUyLTD&!B;&h+l$qni9)>7GW+nD-iw*?yU0%T%6igMrn5< zzQ`@Z0OLh`$1NkTc*0WLHy`8nzqp>k<#3_5QJb8Rx^YUGLPrtTuurKn-kJMXT%3;| z$Hnf&egS`3pQ$k&jvv3?1d@u11|mh&L(MC&;vit0cj@pPW!qmG<)xSu$Rx%37cOOz zh@btq$c^R5m*Gz`ei@=>b3ty8q#t!0($00&QYi2s%5x+81TJlWR4G0CotovPR8@B@ zMNRQy-)b#sf@49YLo?_a?@xOe$xq>WGAnI8#x_W!9(`hmp!Nu+uwiXcJM-U&^HPSa zGuZ@F*aVwpn3sjIJaFiRaZlOJPHYNcH;{Wuq2&43w8W;CMcuJH3bXmZJ!^#SRVE%r zTAnsFVzkL-Fd8);9j~HsEtV<&&nQjnWv!qJrv4EZ{G;f7R?+FCQh5krZr(!Auy(Jz z9J^@Vp_t!cnCkA3i)F973>kfbP1wlyadDT(>+ezcUc@U>ipu#pE|%uROy=3Vu^Fe` zk93xIjuy=tH~JbXvdq>0sZP2dNnq7E>h`<1C?j{A>^BR~qjT3ej;dbA#Xr9O3kpvm zjRblftHhU%K&hSzs2T^%#i+T? z`K3v_L+V($i5kHd?no6&G*fIT4T-xU}*M|f?)8OXg;%Mx3cgRf7I@h7gS&th> zLTyg2+(BO~>rT-JL6EJWSwXU26Fvn(v`<>DPO@s@Y>bT9WMcQ_XwK&PT6GBs;<_ee zT$jEaSpDUzAz#u;=~L0<#EyE8@e%%{J^Riu3}51E&6Xd76+nMg)J7lA;c4*qGB!$h76jQ}JTo9BP!oED69-)TH*V zeON-Btk3~Y7Ipg7xj-iiPm>~Ha)q`qB4vcpdLv~Tue_51>fdk7wJwt*&pD@K?BTq7 z-i-DEsV%}s?o`raN3egXG{&tR#+k19V+G?PDrsal5?K2?R9AH>N#&8#4GA-cL@9)7 zk2#8oA{HM(w(`QsBoNXb$-0o#NFOc%nL>4}{8=hXA&vxUUuDvsAYJW^eyO|^OHW{; z*WKj)n(0n9{$Q{d4`2R@dX$^&_oG*P-7jTGeh+ajU*APuulpMYwu*T_?$lwg`#ZK> zin-M21t&524rDWlGO#Mib7a!N7#`%=gT11+-qN{R#@=}i(@nC(r(-p>X`mv@wRKRq zi@J1vkAiCUEXB?u0y9fdEvR;xXVydOlg&C4{-Le<;S?U;#ZFS+nR2s6%xL3As3R^| zLvDc6V6g$N)@*4;H0Lm5beS$u@17{HpR8lP6&i2PCR9IULlHVQ^@ z*kR5&nw8DO1kb5ylMb^e7qgc;PAOC`FWb)M!y*ag)nbKcz7}bdf5qNxfhp7tTYe5k z#PD+W$e@ft7a(Os&5T~ouK>v_Fj&$SN_$*L;}UGRD7(b`^g>)|T8EiTJ!k z3J<7(-pW~(bR`|EY8yzSb||yfs_w1SUYa3j18LNzQJY4>nl>9^)UJ>7(!6$bySewc zneG_(UUwuy@58C-og?yQSLBztb4!vAkGb+>CVQ<>C;hTUz{&CJjt`hV^MNH zcQ8txiu2OvxKH4e^>mzG?utrvxV7Zm@vCv3`Sob~&F(GWVHfv0oO#{~uQj;VFgg zOTHhaGWUCUHqnp2+{W`vg5IxjUqBvrP4p0O=fnGx*hv2l-l0n626>Xb7#r+>z)!jRPIQhh#Xgsxp7ilnqA>K zLIed#mo>SOx3D^UR8`Dl3uK8E>83FMRX?m+S~EH55LqcLbN`#2x8*jL+R#@uaMMTQ zc=!fX|qo=U#l;~&@j38jT0=2E*q3DoGjqSJ@ec<^Bnp8xs>4t(_g z0FtQTemGRmtGbvo7gw*lPpcQ=eV}j~u3q;b=7K(Ho8@Vz^qzbZ*JHT)@zh1l`%h?( zUJdP4K0iS}BhHKL@x>v1QG&JT^5uMCKGtQDPlYhOg4xA;-`Qm(8M(_CRNo&hiNixZ zJsd2m4AiCJvODdu2`!On%ZxC!3BK@GYf}$$@LZbG5GhhVmQ^ntA2zU6^{#t$KPL|= zQHEoSvSCm#2s6Q7HHtu*e< zrdKLJdx0rlgAA?+!<)W)D~}Rrjjj9{7kfr~Dzw796)3|z|7^x8^RC^l>w;G2Qwi0I z^%xbHshBDg#Z%j?p$#YlR1K+GUk2*Rq-THxnPuJ1D%K&EuEr8|G~3E1NG;DgTJBGh z8Kh^|+A1JcXv!x+^i|w4TMT`sHqCK^|5ZL8QJc0znW#7?v$}ORpZstYVVuk{u2U(S z6tyuayjs9^Im_94#zy^&2OXlLNu3iIClo^koOU>&^3(+7VT+tD*`gna>~UpGPwD+0 zaXwJW&wuQuUU+CJW-p!}lR&S#NaFV(%%{YBa%6MUQV5~*7vI>>UgUG4IJ^X?$jaDD zVOF1Wp+bU%xKkXp^(Qij!+v2pF%|DTvliyGr;*BeS9?zm>%;`96Pu(sbT}cZc^FwG zMZ$y|R)(v$&O^(!kEmGcf?X%?nc}1yf@VXc#$w#o5%NU8gM4nDoE{)uWdwKzogR=~|%mME$;X)3r@f9DQC2Rw6-KGsiUrG@Y

dQ8q1`bCq+?*Oy4Q&oCn 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 diff --git a/work_files/latinExtA_variable.psd b/work_files/latinExtA_variable.psd index 4bd36f2..bbffb3b 100644 --- a/work_files/latinExtA_variable.psd +++ b/work_files/latinExtA_variable.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d449898a51dba277923ba73659f8de76523712b3b966999d4e260dc7e7d50814 -size 234948 +oid sha256:7253b2b5bd0fc7b3aefa90fcff96f0b47bd53d83e5fcd228ea71a7acb73f8dd3 +size 234968 diff --git a/work_files/latinExtB_variable.psd b/work_files/latinExtB_variable.psd index 34e9923..dc5847b 100644 --- a/work_files/latinExtB_variable.psd +++ b/work_files/latinExtB_variable.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:49df8df3f5aa65f5cb94f0140f5f7d7db8bc8259cdd0f4cd1fbab2a250492d8c -size 269395 +oid sha256:c21e8a231ee3cd4e3cc76a8f808b4c0c55f8c33ebe8a05c10fbd008908b61b23 +size 269567