deletions | additions
diff --git a/figures/isordascto/isordascto.eps b/figures/isordascto/isordascto.eps
index 2824b00..d910173 100644
--- a/figures/isordascto/isordascto.eps
+++ b/figures/isordascto/isordascto.eps
...
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: cairo 1.14.0 (http://cairographics.org)
%%CreationDate:
Wed Thu Sep
16 18:25:30 17 21:39:23 2015
%%Pages: 1
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
...
/f-1-0 1 Tf
[(i64* nocapture r)-3(eadonly %v_osr, )]TJ
0 -1.25 Td
[( i64 )3(%n_)-3(osr,
i64 )3(%i_osr, i32
\(i)3(8*, i8)3(*\)* %c_osr)]TJ )3(\(i8*, )3(i8*\)* %c_osr, i64 )3(%i_osr)]TJ
/f-0-0 1 Tf
[(\) {)]TJ
/f-1-0 1 Tf
diff --git a/figures/isordascto/isordascto.png b/figures/isordascto/isordascto.png
index 227ec40..d4339ea 100644
Binary files a/figures/isordascto/isordascto.png and b/figures/isordascto/isordascto.png differ
diff --git a/figures/isordascto/isordascto.svg b/figures/isordascto/isordascto.svg
index ef33ee5..9b03d69 100644
--- a/figures/isordascto/isordascto.svg
+++ b/figures/isordascto/isordascto.svg
...
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.32"
inkscape:cx="128.0949" inkscape:cx="33.39793"
inkscape:cy="805.19553"
inkscape:document-units="px"
inkscape:current-layer="layer1"
...
id="flowSpan7807">i64* nocapture readonly %v_osr,
id="flowPara7741">
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
id="flowSpan7809"> i64 %n_osr,
i64 %i_osr, i32 (i8*, i8*)*
%c_osr) %c_osr, i64 %i_osr) {
id="flowPara7745"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'">osr.entry: ; no compensation code needed...
diff --git a/figures/isordstub/isordstub.eps b/figures/isordstub/isordstub.eps
index a215148..5dd17b2 100644
--- a/figures/isordstub/isordstub.eps
+++ b/figures/isordstub/isordstub.eps
...
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: cairo 1.14.0 (http://cairographics.org)
%%CreationDate: Thu Sep 17
14:08:57 21:47:01 2015
%%Pages: 1
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%BoundingBox: 0 -1 276
301 289
%%EndComments
%%BeginProlog
save
...
Encoding 45 /hyphen put
Encoding 46 /period put
Encoding 48 /zero put
Encoding 49 /one put
Encoding 50 /two put
Encoding 51 /three put
Encoding 52 /four put
...
Encoding 121 /y put
Encoding 123 /braceleft put
Encoding 125 /braceright put
/CharStrings
49 48 dict dup begin
/.notdef 0 def
/d 1 def
/e 2 def
...
/h 39 def
/hyphen 40 def
/m 41 def
/one 42 def /nine
43 42 def
/I
44 43 def
/R
45 44 def
/zero
46 45 def
/k
47 46 def
/braceright
48 47 def
end readonly def
/sfnts [
<00010000000900800003001063767420f78470aa000030c8000002906670676d6117704c0000
33580000008d676c7966894ce1250000009c0000302c68656164ce375b3a000033e800000036
6868656106ebff920000342000000024686d7478eb3f208600003444000000c46c6f63610004
bd7800003508000000c86d617870084c0cef000035d00000002070726570787ac61a000035f0 <00010000000900800003001063767420f78470aa00003020000002906670676d6117704c0000
32b00000008d676c79661eccecdb0000009c00002f8468656164ce375b3a0000334000000036
6868656106ebff910000337800000024686d7478e6721f820000339c000000c06c6f63610004
8fbc0000345c000000c46d617870084b0cef000035200000002070726570787ac61a00003540
00000a9d00020066fe96046605a400030007001740090400060108050204002fccdccc310010
d4ccd4cc301311211125211121660400fc73031bfce5fe96070ef8f272062900000000020058
ffe7049a051d0024003000d741560043000f0053000f00ac000500aa000800a3000f00bc0005
...
1514062b0122263503d9333e4a57123d2922237f2b1f443b2d4b1b253c2a2230fef627252f44
14124633282899211502295e3b465b162a6e478177103e2a2423792826022d8d638070fe601d
28242428421d01a64e4b573534fdd91e27291f2325281d02812028232317252c2a3d3e3f3ca8
bcfe3b1e27242430340000010104000003fa050800210041402421100a090005030dbe1f11c4
180a20181215100019091f04200615101d20060f1c011c2210d45dc4d4fcc411121739111239
39123931002fec32fcc4173930010e0123222635343637253e01333216151133321615140623
2122263534363b011101770d0d051f27222001290b150b1316a059302828fdaa28283059a604
310202231d182409500303231efbc61d2824242424281d03d100000200c9ffdf03f8050e0018
0024006d4051000903140f1622d900030103d71cb90916b90fd509be250b080b040b171b1754
215b1b5b0a641d64216b1b6b0a741d74217b1b7b0a8b088b048a0e9b089b0ea917aa0a161920
00070c211f071222061c2510f4e4ecf4fce4315d0010ecf4ec10eef65dee1112391112393001
0e0123222635343633321211100021222635343736373612133426232206151416333236034a
36824e9eddd5a6c4f0fea1feda5d3d774f2e9ec505836661787e636180025c4544edadb6ebfe
c5fefcfea9fe671c26400302091d010001dc7c9b92767a999300000100be0000040e04a20022
0037401f2010b917e40e00c4060e081711040f0b201a0600041d0339210f140b390f2310dce4
32fce43217391112173931002fec32fcec323025321615140623212322263534363b01112322
263534363b01213332161514062b011103964d2b2b4dfda12f24262c4de2e24b2e26262d025f
2f24252d4be28d1d28291f2424281d03851f2925232424291ffc7b0000000002003b000004b2
04a20008004000a740575b075b035c3c6b076b03662e762e072d3c01283c2e3f092b01b9003f
103f023f1a00b921e42f1709c43610363033281b1711210419142e3c2b08023f392f08280110
0a223f040d0033050d280d3809000f281e14192f4110fcc432c4fc3ce410eec4111217391211
17391112173911123939002f3cee3232feee32d65dee3911123939304b5358bf00390144002f
003c0144002e002e002f070e10ec0510ec5931005d015d011133323635342623033332161514
06232122263534363b021123222635343633213216171e01151406071e011713333216151406
2b0122272627032e012b010187cf8c8d8a89d5443a302a3afeb02224282e213a3a4b2c232301
a6999734434d8d7e1a2913c921382a232271312f0603c03b4d3f85041bfe6c65646566fc7220
25282025232520038e1c2722221d232d945573a5200f281cfecc1f2623254806040123593400
0000000200cdffdf0400050e000b0017006c405b06b90c00b912be0cd5183b0b3b0734013405
4b0b4b07440144055b115b0d54136b116b0d64139b0b9b0794019405a90ba907a601a605b90b
b907b601b605c601c605d711d70dd813d817e711e70de813e8172409071503070f1c1810f4ec
d4ec315d0010e4fcec10ee300122021514123332123534020322021110123332121110020266
7380807374808074bcddddbcbcdede047ffef0f8f9feef0111f9f80110fb6001630135013401
63fe9cfecdfecdfe9b0000000001006800000498051d003c00f641460005002c0045002c0046
002d0042002b0054002c0052002b009a003c009a003b00080028001a0028002000180014000d
003c002c0019002b0000000500280001000b0004000d010000140028010000200104001400ff
003b002d000b00fb00340004003c002c001a002b002d003b000600310000001d002400380031
000800360019000000270011000c003d10dcc4ec32e4d4c4d4c411121739002f3cec3232ecfc
ec10ee1112391117391112391112394b53584116002c0145002c002b002d0145003b003b003c
002b0145002c0145003c0145002c002d0000014500190019001a0710ec08ececec070510ec08
ec593031015d011114062b0122263534363b01112322263534363b0132161511252e01353436
3321321615140706070e010f010133321615140623212226353436370101b0211ab927282f4d
302956322927bf1b1e0121211f2c2a010f262861130b29623291017b562b252927fef12c2827
27fed7017ffed928302424281d04001f2924241613fd33f20e22171e1e22223c0a020205352c
7ffe64202523251e211b270c01440001011bfe8b03b2051000310084412f002e002b00200032
002f0021002b00190000001c0012000400110003000400160007002b010a00240016010a001c
010b0024010c0007010a000e00e4003200240023000100000019002e0003006f00200011006e
001900700027000b003210d43cf4f43cec321239315d0010fcece4f4ec10ee11121739113939
1239391239113930012e013d013426272627263534363332161d01141716171e011514060706
07061d01140623222635343736373e013d01343602b265512c380d1a562a2aa98ca21f10201d
1f200b14b08aa92b2b56120841305101cd1d8da6936a490e03030c402627aae777c322060409
2320222806020422c674e8a82727400c02020b466d94a48f0000009800ba005a00c800cd0098
00a6000a021b0248007b007d00b40098009c00ac00c5020a019600d5013f01b80093018901c1
0164018900cd009800cd00000014032f0010000c01c1040802ec009800ae00000089008700cd
01e304d900db004a008d00db039a0079033f0000007900ae015a0342001d0071041400000079
00a400db00d500000439033b0096010a01bc01d901db018b00a601c7019c00ac035800f20089
0089039c03b6005a0089041900f2033303020098009600cd01a8000000790000007904190098
030201a201dd01ee00b60017016601ae010c00a802980079007701fa007500960089012d0091
0091013f0060006204a00075008100580058005800f000f20098008d01cb007d008d007d00c1
034c009600ae018901cd011b019c00cd00b4017100640308018100fc00fe01fa030e03170091
0091009e0087008700930098028301460191021d00df00000089008d0000000004f604a204a2
04a204a20000001f016401ee0075008d002104ee04ee04ee050e0075021b006204a204a2008d
008d0614065601c7022d01b801c7009301640217028d016d00c3000000190164002104ee030a
008d0091024e037f008d03d1021900bc008d00810081017b04a202a40266008d000c00f2008f
0198025a00000096023b0052007b0614040a039c039c039c039c0000008d0098008d024805cd
053d051d008d0196039c018f039c00be01060019039c007b009e0396068501fa007701aa0079
007d008900890071013f006404a004a2006f006f0071006f007b00000058006a00f00068006f
0308005e00cd016d00c3021702170064030a018100fc01fa0071030e0321007b057100be0073
02d10073007302d1009302830179007f00df008d000000007fff009800980082003040070605
04030201002c2010b002254964b040515820c859212d2cb002254964b040515820c859212d2c
20100720b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d
7920b8ffff5058041b0559b0051cb0032508e12d2c4b505820b80143454459212d2cb0022545
60442d2c4b5358b00225b0022545445921212d2c45442d0000000001000000010000b6a26021
5f0f3cf50111080000000000a380f9f000000000c9b116dcfac3fcbb061e08b7000000060001
000100000000000100000608fe0800000696fac3fac2061e0001000000000000000000000000
0000003104cd006604cd005804cd006604cd00bc04cd00a604cd006804cd000004cd00b604cd
00a204cd00dd04cd00b204cd005a04cd006d04cd005804cd004804cd004404cd019c04cd00cf
04cd00d104cd00cd04cd002904cd008704cd00ba04cd016d04cd00cd04cd00b204cdffee04cd
019a04cd006004cd004204cd011b04cd003904cd01a204cd01a204cd006604cd016d04cd0085
04cd00ac04cd00cf04cd006404cd009a04cdfffe04cd010404cd00c904cd00be04cd003b04cd
00cd04cd006804cd011b0000000000000044000001a8000002dc000003f4000004e40000064c
0000064c0000077000000890000009bc00000bc800000c6400000d6000000e8800000fb80000
111c000011a0000012c00000140c000015440000165c0000177400001824000018a40000197c
00001ac000001aec00001b8400001c8400001df800001f0800002054000020c0000021000000
218400002238000023c0000024b00000257c000026e00000273800002924000029cc00002ab0
00002b4c00002cac00002d7400002f180000302c00010000003101910009007a000500020010
00400011000007e80aa10003000141ff02800141001300030140000c0003013e00fe0003013d
00fe0003013a003e0003013900bb0003013800fe0003013700bb00030136005d000301350096
0003013400fe0003013300bb0003013200640003013000fe0003012d00fe0003012c012400fe
0005012a00fe00030129006b00030128003500030127006b00030126000c0003012500fe0003
012400fe00030123009600030120011f00220005012000fe0003011f00220003011e000c0003
011d011c00530005011d00960003011c00530003011b004c0003011a00530003011900fe0003
0118011700fe0005011700fe0003011600c100fe0005011400fe000301130035000301120047
00030111011000fa0005011100fe0003011000fa0003010f00fe0003010c00fe0003010b00fe
0003010a0109001d00050109001d0003010800f3000a0005010800100003010700d200470005
010700440003010600fe0003010500fe0003010400f3000a0005010400fe0003010300fe0003
0102003e00030101002e000301000096000300ff00fe000e000500ff00fe000300fe00fd0009
000500fe000e000300fd0009000300fc002e000300fb00fe000300fa00f9007d000500fa00fe
000300f9007d000300f80012000300f700f60094000500f700fe000300f700c0000400f600f5
0061000500f60094000300f60080000400f500f4002e000500f50061000300f541ff00400004
00f400f3000a000500f4002e000300f3000a000300f00015000300ef00fe000300ee00ed000b
000500ee00fe000300ed000b000300ec00e60017000500ec00fe000300eb00ea000b000500eb
00fe000300ea000b000300e9001e000300e800a6000300e70039000300e600e50008000500e6
0017000300e50008000300e400af000a000500e400fe000300e300fe000300e2005d000300e1
00fe000300e000af000300df00fe000300de00fe000300db00fe000300da0014000300d900d8
007d000500d900fe000300d8007d000300d70014000300d600fe000300d500b40041000500d5
00fe000300d400fe000300d300d20047000500d30096000300d20047000300d100fe000300d0
00fe000300cf001a000300ce0014000300cd001a000300cc00fe000300cb00ca0047000500cb
00fe000300ca0047000300c900c80014000500c900fe000300c80014000300c700c600140005
00c60014000300c5006b000300c400bb000300c300c20014000500c30025000300c3ffc00004
00c200af000a000500c20014000300c100fe000300be00bd008c000500be00fe000300be00c0
000400bd00bc0059000500bd008c000300bd0080000400bc00bb0026000500bc0059000300bc
0040000400bb0026000300ba00b40041000500ba0032000300b9007d000300b800fe000300b7
00fe000300b6001a000300b541ff00b40041000500b500fe000300b5ffd0000400b400410003
00b300b2008c000500b300fe000300b300c0000400b200b10059000500b2008c000300b20080
000400b100b00026000500b10059000300b10040000400b000af000a000500b00026000300af
000a000301450028000301440028000300ae00af000300ad00fe000300ac00fe000300ab00fe
000300aa0008000300a800fe000300a700fe000300a600fe000300a400a300fa000500a300fa
000300a200fa000300a1004b000300a0009f0053000500a000bb0003009f00530003009e00fe
0003009d009c007d0005009c007d0003009a009900fe0005009900fe0003009800fe00030095
007d000300940006003a00050094004b00030093000c0003009200fe000300910090000b0005
0090000b0003008f003e0003008e008d00290005008e002e0003008d00290003008c00fe0003
008b00fe0003008a00fe000300890088003e00050089007d00030088003e0003008700fe0003
0086005d00030085006b00030084008300fe0005008300fe0003008200fe00030081003a0003
008000220003007f007e00460005007f00aa0003007e004600030079005d00030078007d0003
007700fe000300760075003a0005007600fe00030075003a0003007100fe0003006e00fe0003
006d006c000f0005006d00330003006c000f0003006b00fe0003006a00fe41ff000300690068
00100005006900af00030068001000030067003700030066005a000a00050066004400030065
007d00030064005400100005006400fa000300630062000c0005006300fe00030062000c0003
00610060000d00050061002d00030060000d0003005e005d00140005005d00140003005b005a
000a0005005b00fe0003005a000a0003005900fe000300580054001000050058002900030057
001f00090005005700fe00030056007d00030055005400100005005500fe0003005400100003
005300fe000300520036000b0005005200fe0003005100290003005000fe0003004e001a0003
004d007d0003004c007d0003004b00380003004a00fe0003004900640003004800fe00030047
00960003004600a60003004500fe00030043001e000300420036000b00050042007800030041
002900030040003e000a0005004000640003003f003e000a0005003f00960003003e000a0003
003d000a0003003c00fe0003003b00fe0003003a00fe0003003900fe00030038003700180005
003800fa000300370036000b00050037001800030036000b0003003400960003003300fe0003
003200fe0003003100fe0003003000fa0003002f002c0003002e00fe0003002d00fe0003002c
00fe0003002b00fe0003002a00fa000300290007000300280006003a00050028007d00030027
00bb0003002600fe0003419600250096000300240018001400050024003e0003002300fe0003
002200fe0003002100fe0003002000fe0003001f00090003001e000400140005001e00440003
001d004a0003001c000400140005001c00fe0003001b001a00280005001b00fe0003001a0028
00030019001800140005001900fe0003001800140003001700fe0003001600fe0003001400fe
000300130012000800050012000800030011001000290005001000290003000f000e004c0005
000f00fa0003000e004c0003000d0006003a0005000d00fe0003000c000b00fe0005000b00fe
0003000a000900160005000900160003000800fe000300070006003a0005000700bb00030006
003a000300050004001400050005004b0003000400140003000300fe00030001001a00030000
0012000300010118858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b bcfe3b1e272424303400000200c9ffdf03f8050e00180024006d4051000903140f1622d90003
0103d71cb90916b90fd509be250b080b040b171b1754215b1b5b0a641d64216b1b6b0a741d74
217b1b7b0a8b088b048a0e9b089b0ea917aa0a16192000070c211f071222061c2510f4e4ecf4
fce4315d0010ecf4ec10eef65dee11123911123930010e012322263534363332121110002122
2635343736373612133426232206151416333236034a36824e9eddd5a6c4f0fea1feda5d3d77
4f2e9ec505836661787e636180025c4544edadb6ebfec5fefcfea9fe671c26400302091d0100
01dc7c9b92767a999300000100be0000040e04a200220037401f2010b917e40e00c4060e0817
11040f0b201a0600041d0339210f140b390f2310dce432fce43217391112173931002fec32fc
ec323025321615140623212322263534363b01112322263534363b01213332161514062b0111
03964d2b2b4dfda12f24262c4de2e24b2e26262d025f2f24252d4be28d1d28291f2424281d03
851f2925232424291ffc7b0000000002003b000004b204a20008004000a740575b075b035c3c
6b076b03662e762e072d3c01283c2e3f092b01b9003f103f023f1a00b921e42f1709c4361036
3033281b1711210419142e3c2b08023f392f082801100a223f040d0033050d280d3809000f28
1e14192f4110fcc432c4fc3ce410eec411121739121117391112173911123939002f3cee3232
feee32d65dee3911123939304b5358bf00390144002f003c0144002e002e002f070e10ec0510
ec5931005d015d01113332363534262303333216151406232122263534363b02112322263534
3633213216171e01151406071e0117133332161514062b0122272627032e012b010187cf8c8d
8a89d5443a302a3afeb02224282e213a3a4b2c232301a6999734434d8d7e1a2913c921382a23
2271312f0603c03b4d3f85041bfe6c65646566fc722025282025232520038e1c2722221d232d
945573a5200f281cfecc1f26232548060401235934000000000200cdffdf0400050e000b0017
006c405b06b90c00b912be0cd5183b0b3b07340134054b0b4b07440144055b115b0d54136b11
6b0d64139b0b9b0794019405a90ba907a601a605b90bb907b601b605c601c605d711d70dd813
d817e711e70de813e8172409071503070f1c1810f4ecd4ec315d0010e4fcec10ee3001220215
141233321235340203220211101233321211100202667380807374808074bcddddbcbcdede04
7ffef0f8f9feef0111f9f80110fb600163013501340163fe9cfecdfecdfe9b00000000010068
00000498051d003c00f641460005002c0045002c0046002d0042002b0054002c0052002b009a
003c009a003b00080028001a0028002000180014000d003c002c0019002b0000000500280001
000b0004000d010000140028010000200104001400ff003b002d000b00fb00340004003c002c
001a002b002d003b000600310000001d002400380031000800360019000000270011000c003d
10dcc4ec32e4d4c4d4c411121739002f3cec3232ecfcec10ee1112391117391112391112394b
53584116002c0145002c002b002d0145003b003b003c002b0145002c0145003c0145002c002d
0000014500190019001a0710ec08ececec070510ec08ec593031015d011114062b0122263534
363b01112322263534363b0132161511252e013534363321321615140706070e010f01013332
1615140623212226353436370101b0211ab927282f4d302956322927bf1b1e0121211f2c2a01
0f262861130b29623291017b562b252927fef12c282727fed7017ffed928302424281d04001f
2924241613fd33f20e22171e1e22223c0a020205352c7ffe64202523251e211b270c01440001
011bfe8b03b2051000310084412f002e002b00200032002f0021002b00190000001c00120004
00110003000400160007002b010a00240016010a001c010b0024010c0007010a000e00e40032
00240023000100000019002e0003006f00200011006e001900700027000b003210d43cf4f43c
ec321239315d0010fcece4f4ec10ee111217391139391239391239113930012e013d01342627
2627263534363332161d01141716171e01151406070607061d01140623222635343736373e01
3d01343602b265512c380d1a562a2aa98ca21f10201d1f200b14b08aa92b2b56120841305101
cd1d8da6936a490e03030c402627aae777c3220604092320222806020422c674e8a82727400c
02020b466d94a48f0000009800ba005a00c800cd009800a6000a021b0248007b007d00b40098
009c00ac00c5020a019600d5013f01b80093018901c10164018900cd009800cd00000014032f
0010000c01c1040802ec009800ae00000089008700cd01e304d900db004a008d00db039a0079
033f0000007900ae015a0342001d007104140000007900a400db00d500000439033b0096010a
01bc01d901db018b00a601c7019c00ac035800f200890089039c03b6005a0089041900f20333
03020098009600cd01a8000000790000007904190098030201a201dd01ee00b60017016601ae
010c00a802980079007701fa007500960089012d00910091013f0060006204a0007500810058
0058005800f000f20098008d01cb007d008d007d00c1034c009600ae018901cd011b019c00cd
00b4017100640308018100fc00fe01fa030e031700910091009e008700870093009802830146
0191021d00df00000089008d0000000004f604a204a204a204a20000001f016401ee0075008d
002104ee04ee04ee050e0075021b006204a204a2008d008d0614065601c7022d01b801c70093
01640217028d016d00c3000000190164002104ee030a008d0091024e037f008d03d1021900bc
008d00810081017b04a202a40266008d000c00f2008f0198025a00000096023b0052007b0614
040a039c039c039c039c0000008d0098008d024805cd053d051d008d0196039c018f039c00be
01060019039c007b009e0396068501fa007701aa0079007d008900890071013f006404a004a2
006f006f0071006f007b00000058006a00f00068006f0308005e00cd016d00c3021702170064
030a018100fc01fa0071030e0321007b057100be007302d10073007302d1009302830179007f
00df008d000000007fff00980098008200304007060504030201002c2010b002254964b04051
5820c859212d2cb002254964b040515820c859212d2c20100720b00050b00d7920b8ffff5058
041b0559b0051cb0032508b0042523e120b00050b00d7920b8ffff5058041b0559b0051cb003
2508e12d2c4b505820b80143454459212d2cb002254560442d2c4b5358b00225b00225454459
21212d2c45442d0000000001000000010000953eac3b5f0f3cf50111080000000000a380f9f0
00000000c9b116dcfac3fcbb061e08b7000000060001000100000000000100000608fe080000
0696fac3fac2061e00010000000000000000000000000000003004cd006604cd005804cd0066
04cd00bc04cd00a604cd006804cd000004cd00b604cd00a204cd00dd04cd00b204cd005a04cd
006d04cd005804cd004804cd004404cd019c04cd00cf04cd00d104cd00cd04cd002904cd0087
04cd00ba04cd016d04cd00cd04cd00b204cdffee04cd019a04cd006004cd004204cd011b04cd
003904cd01a204cd01a204cd006604cd016d04cd008504cd00ac04cd00cf04cd006404cd009a
04cdfffe04cd00c904cd00be04cd003b04cd00cd04cd006804cd011b00000000000000440000
01a8000002dc000003f4000004e40000064c0000064c0000077000000890000009bc00000bc8
00000c6400000d6000000e8800000fb80000111c000011a0000012c00000140c000015440000
165c0000177400001824000018a40000197c00001ac000001aec00001b8400001c8400001df8
00001f0800002054000020c0000021000000218400002238000023c0000024b00000257c0000
26e0000027380000292400002a0800002aa400002c0400002ccc00002e7000002f8400010000
003001910009007a00050002001000400011000007e80aa10003000141ff0280014100130003
0140000c0003013e00fe0003013d00fe0003013a003e0003013900bb0003013800fe00030137
00bb00030136005d0003013500960003013400fe0003013300bb0003013200640003013000fe
0003012d00fe0003012c012400fe0005012a00fe00030129006b00030128003500030127006b
00030126000c0003012500fe0003012400fe00030123009600030120011f00220005012000fe
0003011f00220003011e000c0003011d011c00530005011d00960003011c00530003011b004c
0003011a00530003011900fe00030118011700fe0005011700fe0003011600c100fe00050114
00fe00030113003500030112004700030111011000fa0005011100fe0003011000fa0003010f
00fe0003010c00fe0003010b00fe0003010a0109001d00050109001d0003010800f3000a0005
010800100003010700d200470005010700440003010600fe0003010500fe0003010400f3000a
0005010400fe0003010300fe00030102003e00030101002e000301000096000300ff00fe000e
000500ff00fe000300fe00fd0009000500fe000e000300fd0009000300fc002e000300fb00fe
000300fa00f9007d000500fa00fe000300f9007d000300f80012000300f700f60094000500f7
00fe000300f700c0000400f600f50061000500f60094000300f60080000400f500f4002e0005
00f50061000300f541ff0040000400f400f3000a000500f4002e000300f3000a000300f00015
000300ef00fe000300ee00ed000b000500ee00fe000300ed000b000300ec00e60017000500ec
00fe000300eb00ea000b000500eb00fe000300ea000b000300e9001e000300e800a6000300e7
0039000300e600e50008000500e60017000300e50008000300e400af000a000500e400fe0003
00e300fe000300e2005d000300e100fe000300e000af000300df00fe000300de00fe000300db
00fe000300da0014000300d900d8007d000500d900fe000300d8007d000300d70014000300d6
00fe000300d500b40041000500d500fe000300d400fe000300d300d20047000500d300960003
00d20047000300d100fe000300d000fe000300cf001a000300ce0014000300cd001a000300cc
00fe000300cb00ca0047000500cb00fe000300ca0047000300c900c80014000500c900fe0003
00c80014000300c700c60014000500c60014000300c5006b000300c400bb000300c300c20014
000500c30025000300c3ffc0000400c200af000a000500c20014000300c100fe000300be00bd
008c000500be00fe000300be00c0000400bd00bc0059000500bd008c000300bd0080000400bc
00bb0026000500bc0059000300bc0040000400bb0026000300ba00b40041000500ba00320003
00b9007d000300b800fe000300b700fe000300b6001a000300b541ff00b40041000500b500fe
000300b5ffd0000400b40041000300b300b2008c000500b300fe000300b300c0000400b200b1
0059000500b2008c000300b20080000400b100b00026000500b10059000300b10040000400b0
00af000a000500b00026000300af000a000301450028000301440028000300ae00af000300ad
00fe000300ac00fe000300ab00fe000300aa0008000300a800fe000300a700fe000300a600fe
000300a400a300fa000500a300fa000300a200fa000300a1004b000300a0009f0053000500a0
00bb0003009f00530003009e00fe0003009d009c007d0005009c007d0003009a009900fe0005
009900fe0003009800fe00030095007d000300940006003a00050094004b00030093000c0003
009200fe000300910090000b00050090000b0003008f003e0003008e008d00290005008e002e
0003008d00290003008c00fe0003008b00fe0003008a00fe000300890088003e00050089007d
00030088003e0003008700fe00030086005d00030085006b00030084008300fe0005008300fe
0003008200fe00030081003a0003008000220003007f007e00460005007f00aa0003007e0046
00030079005d00030078007d0003007700fe000300760075003a0005007600fe00030075003a
0003007100fe0003006e00fe0003006d006c000f0005006d00330003006c000f0003006b00fe
0003006a00fe41ff00030069006800100005006900af00030068001000030067003700030066
005a000a00050066004400030065007d00030064005400100005006400fa000300630062000c
0005006300fe00030062000c000300610060000d00050061002d00030060000d0003005e005d
00140005005d00140003005b005a000a0005005b00fe0003005a000a0003005900fe00030058
0054001000050058002900030057001f00090005005700fe00030056007d0003005500540010
0005005500fe0003005400100003005300fe000300520036000b0005005200fe000300510029
0003005000fe0003004e001a0003004d007d0003004c007d0003004b00380003004a00fe0003
004900640003004800fe0003004700960003004600a60003004500fe00030043001e00030042
0036000b00050042007800030041002900030040003e000a0005004000640003003f003e000a
0005003f00960003003e000a0003003d000a0003003c00fe0003003b00fe0003003a00fe0003
003900fe00030038003700180005003800fa000300370036000b00050037001800030036000b
0003003400960003003300fe0003003200fe0003003100fe0003003000fa0003002f002c0003
002e00fe0003002d00fe0003002c00fe0003002b00fe0003002a00fa00030029000700030028
0006003a00050028007d0003002700bb0003002600fe00034196002500960003002400180014
00050024003e0003002300fe0003002200fe0003002100fe0003002000fe0003001f00090003
001e000400140005001e00440003001d004a0003001c000400140005001c00fe0003001b001a
00280005001b00fe0003001a002800030019001800140005001900fe00030018001400030017
00fe0003001600fe0003001400fe000300130012000800050012000800030011001000290005
001000290003000f000e004c0005000f00fa0003000e004c0003000d0006003a0005000d00fe
0003000c000b00fe0005000b00fe0003000a000900160005000900160003000800fe00030007
0006003a0005000700bb00030006003a000300050004001400050005004b0003000400140003
000300fe00030001001a000300000012000300010118858d012b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d00000000> 2b2b2b2b2b2b2b2b1d00000000>
] def
/f-0-0 currentdict end definefont pop
%%EndResource
...
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%PageBoundingBox: 0 -1 276
301 289
%%EndPageSetup
q 0 -1 276
302 290 rectclip q
0 g
BT
9 0 0 9 0
294.13916 282.88916 Tm
/f-0-0 1 Tf
[(define i32)-599(@isordstub\()]TJ
0.599609 -1.25 Td
...
-0.599609 -1.25 Td
(entry:)Tj
0.599609 -1.25 Td
[( %cont.fun)-3(c =
ca)-3(ll ; contin. f)-3(un generator call)]TJ
0 -2.5 Td
[( ; generator retur)3(ns)-3( ptr)-598(to continuation f)-3(un)]TJ ca)-3(ll)]TJ
0 -1.25 Td
[(
i32 \(i64*)3(, i64,)3( i32 \(i8*,)3( i8*\)*)3(, i64 )3(\)* ; generator re)3(turns ptr to i)3(sordto)]TJ
0 -1.25 Td
[( i3)3(2 \(i64*, i)3(64, i3)3(2 \(i8*, i8)3(*\)*, i)3(64\)* )]TJ
0 -1.25 Td
( )Tj
/f-0-1 1 Tf
...
/f-0-0 1 Tf
[( )3( \(i8*, i8*)3(, i8*,)3( i8*\)*)3( inttoptr )]TJ
0 -2.5 Td
[( ;
con)-3(tinuation fun)-3( generator
address function a)-3(ddress is 4357824)]TJ
0 -1.25 Td
[( \(i64
4357)3(824 to)3( 4)3(357824)3( to )]TJ
0 -1.25 Td
[( )3( i3)3(2 \(i64*, i)3(64, i3)3(2 \(i8*, i8)3(*\)*, i)3(64\)* )
()]TJ
...
/f-0-1 1 Tf
<0101>Tj
/f-0-0 1 Tf
[( )3( )3(
)3( \(i8*,
i8*)3(, i8*,)3( i8*\)*)3(\))]TJ )3(i8*, i)3(8*, i8)3(*\)*\))]TJ
0 -2.5 Td
[( ; hard-coded
parameters pas)-4(sed to ge)3(nerator:)]TJ p)3(ara)-3(meters pass)-4(ed to)3( generator:)]TJ
0 -1.25 Td
[( ;
1\) 469)3(93664 )3(= addr of isord IR func)-3(tion)]TJ
0 -1.25 Td
[( ;
2\) 469)3(95056 )3(= addr of basic)-3( block at loo)3(p.body)]TJ
0 -1.25 Td
[( ;
3\) 470)3(05408 )3(= addr of code generation env)]TJ
0 -1.25 Td
[( \(i8*
inttoptr)3( i)3(nttoptr \(i64
4699)3(3664 t)3(o i8*\))3(,)]TJ 4)3(699366)3(4 to i)3(8*\),)]TJ
0 -1.25 Td
[(
i8* )3(inttoptr i)3(8* inttopt)3(r \(i64
)3(469950)3(56 to )3(i8*\), 469)3(95056 )3(to i8*)3(\), )]TJ
0 -1.25 Td
( )Tj
/f-0-1 1 Tf
<01>Tj [<01>]TJ
/f-0-0 1 Tf
[(i8* )3(inttoptr [( i)3(8* inttopt)3(r \(i64
)3(470054)3(08 to )3(i8*\), )3(i8* %v)3(al\) )]TJ 470)3(05408 )3(to i8*)3(\), i8*)3( %val\) )
]TJ
0 -2.5 Td
[( %osr.res)-599(= call i32 %cont.func)-4(\(i64* %v_osr, )]TJ
0 -1.25 Td
diff --git a/figures/isordstub/isordstub.png b/figures/isordstub/isordstub.png
index 4bda52b..e6ff864 100644
Binary files a/figures/isordstub/isordstub.png and b/figures/isordstub/isordstub.png differ
diff --git a/figures/isordstub/isordstub.svg b/figures/isordstub/isordstub.svg
index 447da9b..7f175e7 100644
--- a/figures/isordstub/isordstub.svg
+++ b/figures/isordstub/isordstub.svg
...
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.07"
inkscape:cx="23.23447"
inkscape:cy="773.01102" inkscape:cx="467.1597"
inkscape:cy="735.62784"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
...
image/svg+xml
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
...
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier"
id="flowPara4047">entry:
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier"
id="flowPara4049"> id="flowPara4051"> %cont.func =
call ; contin. fun generator call
id="flowPara4051" /> id="flowPara4053"> ; generator returns ptr to isordto
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier"
id="flowPara4053"> ; generator returns ptr to continuation fun
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier" id="flowPara4055"> i32 (i64*, i64, i32 (i8*, i8*)*, i64 )* i64)*
id="flowPara4057"> (i8*, i8*, i8*, i8*)* inttoptr
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier"
id="flowPara4059" />
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier"
id="flowPara4061"> ;
continuation fun generator
function address is 4357824
id="flowPara4063"> (i64 4357824 to
id="flowPara4101"> i32 (i64*, i64, i32 (i8*, i8*)*, i64)*
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier"
id="flowPara4065"> (i8*, i8*, i8*, i8*)*)
id="flowPara4067" />
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier"
id="flowPara4069"> ; hard-coded parameters passed to generator:
id="flowPara4131"> ;
1) 46993664 = addr of isord IR function
id="flowPara4133"> ;
2) 46995056 = addr of basic block at loop.body
id="flowPara4139"> ;
3) 47005408 = addr of code generation env
id="flowPara4071"> (i8* inttoptr (i64 46993664 to i8*),
id="flowPara4073"> i8* inttoptr (i64 46995056 to i8*),
id="flowPara4077"> i8* inttoptr (i64 47005408 to i8*), i8* %val)
id="flowPara4079" />
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier"
diff --git a/figures/isordx86-64/isordx86-64.eps b/figures/isordx86-64/isordx86-64.eps
index 6ce37e4..cfa1bee 100644
--- a/figures/isordx86-64/isordx86-64.eps
+++ b/figures/isordx86-64/isordx86-64.eps
...
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: cairo 1.14.0 (http://cairographics.org)
%%CreationDate: Thu Sep 17
09:26:54 21:37:29 2015
%%Pages: 1
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
...
/m 20 def
/v 21 def
/comma 22 def
/l /numbersign 23 def
/dollar /c 24 def
/c /n 25 def
/j /l 26 def
/e /dollar 27 def
/period /j 28 def
/L /e 29 def
/B /period 30 def
/zero /L 31 def
/underscore /B 32 def
/numbersign /zero 33 def
/y /underscore 34 def
/n /y 35 def
/t /eight 36 def
/eight /parenleft 37 def
/parenleft /parenright 38 def
/parenright /asterisk 39 def
/asterisk /t 40 def
/g 41 def
/six 42 def
/hyphen 43 def
...
<00010000000900800003001063767420f78470aa00002e30000002906670676d6117704c0000
30c00000008d676c796681f0fa3b0000009c00002d9468656164ce375b3a0000315000000036
6868656106ebff8d0000318800000024686d7478d33e1a18000031ac000000b06c6f63610004
13c00000325c000000b46d61787008470cef000033100000002070726570787ac61a00003330 1e100000325c000000b46d61787008470cef000033100000002070726570787ac61a00003330
00000a9d00020066fe96046605a400030007001740090400060108050204002fccdccc310010
d4ccd4cc301311211125211121660400fc73031bfce5fe96070ef8f2720629000000000200a6
000004500560000b0027007a412a00270023001c0003010600090105001c010000230104001a
...
0018002d401a1812110b040e0a00190e03cd191812110b0a040300080719151910d4ec173931
0010fccc12393911173930013e013b01321615140607010e012322262f012e01353c013701f0
081a1fdb0f120404feed07180e03070846101002011722130c09051007fdc40f1202031a0712
0c0b0905000100ba0000043d051d001b0059411f000b00000100000700ff001a000c00fb0013
0013000d00100008000b000700010014001a0004000400000010000b00270050001700010017
00040000001c10d4c4c45dfcc411121739123911393931002fec32fcec393001232226353436
3321321615112132161514062321222635343633210223aa61312927014a1b1e013a2623222f
fd1e27292a2a0115048d1f2924241613fb992124291f242423220000000100c7ff0603f80554
005300b340603d403c36473339312b2e2a4d4e232404401316120c1d0f07015404090f004047
b92e392a1db90f001601160400540c1a4a27363c4e3120244a074d0904230131ac2b2e01ac07
2bad33ac0420073c5107ad00ac2a04090f5101514a071227055410f4c4ecc45dd4c432ece410
c4ee10eee610ee3210ee1239111239111239111239123911123939310010d4c4c45dc4ecd4c4
c4ecc41112391112393911123939113912173911123939123911393912393025070e01232226
3d01372e01270e012322263d01343633321716171e013332363534262f012e013534363f013e
013332161d01071e01173e013332161d01140623222726272e012322061514161f011e011514
06028d0c022428211e0c294c270e2217282e2d253a1a0705159b525e73528daf6578b39f0403
26212224062547210f1e12221e2422321c0604146c49657a4c4ac09289c344e82d29262a12e2
07211b1716352e8b242e4e1809253d58463e4f313b239f63819e0c4c292925230c500a191012
11252d7b25273e1008282e5647395318402f997383a600010060ffe7042d03b4002c007b405c
851c8f0f99239f0f9b0e9912a42cbb0fba23b42c0a080b0701000311044f0b5f0b6f0b641c74
1c7f0b9f0baf0ba41cb01e0a1e17fa240b11e0042af724d32d4412441654125416a926a928ba
26ba28080e140031210754142827562d10fcecf4c4ec1139315d0010e4fcc4ecc410fec45d11
1217391139305d013534363332161d011406232226272e012322061514163332363736373633
321615140423220035340033321603932628291f26261b271c3089599cc3bb93437936132041
251f27fed5a8d9fedf0120d84c99036004211f304bba25251f315153b89295bd25250c193527
1f4fa50116d0d00117290000000200e9fe75039a0560000b002a00764129002a0026001e000c
001f00180003010600090018001b00e00012001f0100000901050026010400120103002b008a
001c00010027000c00060020002600150000005e0006000c00150023000c0027001e002b10d4
ecd4c410d4ee113939111239315d0010e4fce4ec10fec410ee11123939113930013436333216
151406232226011406070e012322263534363332163332363511212226353436332132161502
8b28413d2724404128010f1e2239ca88716a33231b721d927cfe796131282802271b1f04bc6b
392e59582727fbba7f842c4a4d2e301f2f0f87a602cf1f292323161300020066ffe7045a03b6
001c002300bd414e006600050076000500a6000500a6001600a9001000a9000200b600050007
000300e0000f002100e00015001d00b90080000600010006008f000000e00000000200000101
001500f7000f00d30024004400020054000200a6001700a9001300a9001100a9000100b50017
00ba001300ba001100ba0001000a001b001c00180000001d0012001c0009001e002800090018
0058001d002800120056002410fcecf4c4ec1139111239111239315d0010e4ecfc5dc45dec10
ee10ee305d011e01333224333216151406070e012322003534003332001514062b0125212e01
232206011408b39b7501141d1e282a2e64d569e4feee0122e9d301162f680ffd65028b0fa97b
85b601a2909d7d261c1d301731340107d9dd0112ff00b638268377918c000000000101a2fff2
032b0156000b0014400903d409d30c061b000c10d4ec310010f4ec3025343633321615140623
222601a26d57596c6d58586ca44e646250506262000100390000046f04a200280050402a080b
060013032515b91ce4032713c40b251f26221c16130d0414100b060022260031063a1910260f
142910dcecc432f4ec10c4111239111217391112393931002fee32c6feee3211123939113930
0134363332161d0111140623212322263534363b01112322263534363b01213332161514062b
01112103df1e2a24242622fc892f24242b4c7d7d4a2d25272b01c32f24262d4ca8021401934b
2c25272bfeb723272424281d03851f2925232424291ffc7b0000000300540000047304a20008
001100320076404f2909e707e61b10b922e41900c41204290425142914252425592969056929
6903790379057929862b8a030e1c221913041f1a322c122926100a0107231206000d0d261f16
26040d2c1609000f1a2f3310fcec32c4d4ecc410c410ee111739123911123911121739315d00
2fee32feee32feee3930253332363534262b01353332363534262b01132122263534363b0111
23222635343633213216151406071e01151406070e01230191debc9a93b9e8d18e897c74f8c9
fe4023232c5321214d2c242201d3d4de44436c695a5231786e8d5f6e6f5e7b5a5e595ffbee24
24281d03851f292325a59d4f7626278c6c5b96301c190000000200cdffdf0400050e000b0017
006c405b06b90c00b912be0cd5183b0b3b07340134054b0b4b07440144055b115b0d54136b11
6b0d64139b0b9b0794019405a90ba907a601a605b90bb907b601b605c601c605d711d70dd813
d817e711e70de813e8172409071503070f1c1810f4ecd4ec315d0010e4fcec10ee3001220215
141233321235340203220211101233321211100202667380807374808074bcddddbcbcdede04
7ffef0f8f9feef0111f9f80110fb600163013501340163fe9cfecdfecdfe9b0000000001ffee
fe1d04dffe9300030011400601000400020410d4c4310010d4c4300115213504dffb0ffe9376
760000020006ffb004c9057700030053008b405920352c2904231e480454510d0e07362a1eb8
2f002301233d170252460eb83f15004b07540b36040e023d373a5352514e484746403f3e3635
322c2b2a2926201f1e18171601000e0d0a0403022043150f1b1243033a1b03125410d4e4d4e4
11123939111739123939315d0010c432d43c3cec3232d43c3cc45d32ec323211123939123939
111217393001333723010e012322263534363713232226353436332137212226353436332113
3e01333216151406070333133e0133321615140607033332161514062b010733321615140623
21030e0123222635343637132301d7d75ad7fed90819122129040294e11f21221e010a5afef6
1f21231d0133a20819122028020292d7a4071b111f2b030394d11e22221efa5af81e22211ffe
dfa2071a122029030391d70214fcfccb1615221c040c06019c1d1c1c1ffc1e1c1c2101c51615
221c080a04fe6401c515162319060c06fe64201b1c20fc1f1c1c1dfe3b1615221c040c06019c
000000010039fe71048d039c002f00be41320022002000440020006500200066001000040028
002000300011000e000000b90007002f0021001e000300110100002800170104000701030030
000f00100011002f0000001f002000210008002c001400250067002c0004000b001b0067002c
0014003010d4c4e4d4c410e6111217390010e4fc3cec173210ee32111239304b535841140010
01450020014500100011000f0145002101450000002f000000200145001f0145001100110010
070510ecec0710ecec08ecec5931005d01333216151406232122263534363b01130122263534
36332132161514062b0109012322263534363b01321615140607021b2b49342927fe332f2527
27d9a2fe914231282801173826324325010f01142745342639f729272c38ff001f2923242027
2424013f02cf202823231f272820fdd902272028271f2323262002000000000100680000047f
03b4003b00cf414a000d000e002800080014002b0025000300010000002800fa001100010100
00080104001100f7002c002300150003000000fb0033001c0023001d00240020001c00160019
00140033002d0030000d000800090005003b0035000900030038000a000d0002000500000020
00520024005c00190057001400300057002b000d0027000500530014005b0038005200340000
0059003c10fc3ce4ece4fc3ce410e4fee4111239123912173911123911123939111239391112
393931002f3cee1732eefeee10ee11121739111239393037112322263534363b0232161d013e
0133321615113332161514062b0122263534363b0111342623220615113332161514062b0222
2635343633f21344332a2f2f601b1e498f4d97ad2f322c2f3cdd40242a3a236a65669c233c2a
2446b63629292f448d0281202825211613444441bca6fe3b212427211e2a271e01a0757b8a66
fe601e272a1e2325281d00010058ffee046204ba003000a0413a0064000d0074000d0084000d
0094000d00a4000d0005001d00170008001e0008000e0006002f0029002c0000000e000b00fa
0017001f000600b9002c0026008f0000000100000108001700d30031002600200023001d0006
00000007000300230011002f000700270027000f001d0001001d003110d45d3cec32c4c4c411
393911123939310010e4fc5d3cc4ec3210fec41112393911123939111239305d013216151406
2321111416333236333216151406070e01232226272e013d01112322263534363b013d013436
3332161d010377312d2a2afe6b55675bfe1e1c27313b629d45759f271411aa2a263455712527
2c22036422252323feb2a4686a281d21311727244b4a2360641f014e2125291ecd352b293259
cb00000300cfffdf03fe050e000b0017002f0091407324180faf090109da03b92a15b91ebe2a
d5300a1d051f1a1d151f7a087a04750a75028416840e820a82028b148b108b088b049b1d9b2b
941f94299b1894249b2f9b1994239425a423a425ab2fab19a91ca620b620b623b625b91cb919
b92e2624180c120721230607270c071b232700072d1c3010f4ecc4f4ec10eef4ee113939315d
0010e4fcec10eef45dce39393001141633323635342623220613141633323635342623220613
2e01353436333216151406071e011514062322263534360173856e6f85886c6b880a83666783
83676782216162deadaae26065656ce3b5b5e26c01586a84806a68817f01ee637e7f64607d7d
fe793093629bc7c8906b9430299f6ba5d0d2a7669f0000000001019cfe6f033104c5001d0021
401103090fc71bb31e0c00139006010611151e10d4ec5de432310010fce43939300114060706
02151416171e01151406232226272602353412373e013332160331431144393031195713101f
4c326b6a57593a622610130498158b299ffef88e83f57a42b31516194148990150b9a9013390
5f6019000001019afe6f033104c5001d0033402209031bc70fb31e1909190319131917290929
0329132917089f0601061115130c001e10d43cf4ec5d315d0010fce439393001343637361235
3426272e01353436333216171612151402070e01232226019a4412433a31321a561410214b32
6b6a59593e5d261014fe9e148929a001098d80f77c42b3161419414798feaeb9a9fecc90625c
1a000000000100d1019c03fa04a200460076404e453e413c3b35342e2d2c26251f1e1d171610
0f0e080701001504221a380441b34742413c001e05452c26251f2d053d3b35342e0431291d17
16100f05450e08070104130b15131445311529143d4710d4e4e4dce4e4111739121739111217
39121739111739310010fccc32c4321117391239393001253e013332161f011e011514060705
171e011514060f010e012322262f01070e012322262f012e013534363f01252e013534363f01
3e013332161705033534363b0132161d0102a00108070e04080b07190303100ffee8bc07070d
0b420c0e05060e069493070f0704100a400d0e0807bcfeea1011070119060c08080c0501081b
121b4e1c11035a7102040f144c0c0f03080c033fda060f07050f092f09070c0af8f80b0b0808
2f090f07050f06da3f030d090215054c140f020273011f0c110c0c110c00000000020085fe71 0c0b090500020006ffb004c9057700030053008b405920352c2904231e480454510d0e07362a
1eb82f002301233d170252460eb83f15004b07540b36040e023d373a5352514e484746403f3e
3635322c2b2a2926201f1e18171601000e0d0a0403022043150f1b1243033a1b03125410d4e4
d4e411123939111739123939315d0010c432d43c3cec3232d43c3cc45d32ec32321112393912
3939111217393001333723010e01232226353436371323222635343633213721222635343633
21133e01333216151406070333133e0133321615140607033332161514062b01073332161514
062321030e0123222635343637132301d7d75ad7fed90819122129040294e11f21221e010a5a
fef61f21231d0133a20819122028020292d7a4071b111f2b030394d11e22221efa5af81e2221
1ffedfa2071a122029030391d70214fcfccb1615221c040c06019c1d1c1c1ffc1e1c1c2101c5
1615221c080a04fe6401c515162319060c06fe64201b1c20fc1f1c1c1dfe3b1615221c040c06
019c000000010060ffe7042d03b4002c007b405c851c8f0f99239f0f9b0e9912a42cbb0fba23
b42c0a080b0701000311044f0b5f0b6f0b641c741c7f0b9f0baf0ba41cb01e0a1e17fa240b11
e0042af724d32d4412441654125416a926a928ba26ba28080e140031210754142827562d10fc
ecf4c4ec1139315d0010e4fcc4ecc410fec45d111217391139305d013534363332161d011406
232226272e012322061514163332363736373633321615140423220035340033321603932628
291f26261b271c3089599cc3bb93437936132041251f27fed5a8d9fedf0120d84c9903600421
1f304bba25251f315153b89295bd25250c1935271f4fa50116d0d00117290000000100680000
047f03b4003b00cf414a000d000e002800080014002b0025000300010000002800fa00110001
010000080104001100f7002c002300150003000000fb0033001c0023001d00240020001c0016
001900140033002d0030000d000800090005003b0035000900030038000a000d000200050000
002000520024005c00190057001400300057002b000d0027000500530014005b003800520034
00000059003c10fc3ce4ece4fc3ce410e4fee411123912391217391112391112393911123939
1112393931002f3cee1732eefeee10ee11121739111239393037112322263534363b0232161d
013e0133321615113332161514062b0122263534363b0111342623220615113332161514062b
02222635343633f21344332a2f2f601b1e498f4d97ad2f322c2f3cdd40242a3a236a65669c23
3c2a2446b63629292f448d0281202825211613444441bca6fe3b212427211e2a271e01a0757b
8a66fe601e272a1e2325281d000100ba0000043d051d001b0059411f000b00000100000700ff
001a000c00fb00130013000d00100008000b000700010014001a0004000400000010000b0027
005000170001001700040000001c10d4c4c45dfcc411121739123911393931002fec32fcec39
30012322263534363321321615112132161514062321222635343633210223aa61312927014a
1b1e013a2623222ffd1e27292a2a0115048d1f2924241613fb992124291f2424232200000001
00c7ff0603f80554005300b340603d403c36473339312b2e2a4d4e232404401316120c1d0f07
015404090f004047b92e392a1db90f001601160400540c1a4a27363c4e3120244a074d090423
0131ac2b2e01ac072bad33ac0420073c5107ad00ac2a04090f5101514a071227055410f4c4ec
c45dd4c432ece410c4ee10eee610ee3210ee1239111239111239111239123911123939310010
d4c4c45dc4ecd4c4c4ecc4111239111239391112393911391217391112393912391139391239
3025070e012322263d01372e01270e012322263d01343633321716171e013332363534262f01
2e013534363f013e013332161d01071e01173e013332161d01140623222726272e0123220615
14161f011e01151406028d0c022428211e0c294c270e2217282e2d253a1a0705159b525e7352
8daf6578b39f040326212224062547210f1e12221e2422321c0604146c49657a4c4ac09289c3
44e82d29262a12e207211b1716352e8b242e4e1809253d58463e4f313b239f63819e0c4c2929
25230c500a19101211252d7b25273e1008282e5647395318402f997383a6000200e9fe75039a
0560000b002a00764129002a0026001e000c001f00180003010600090018001b00e00012001f
0100000901050026010400120103002b008a001c00010027000c00060020002600150000005e
0006000c00150023000c0027001e002b10d4ecd4c410d4ee113939111239315d0010e4fce4ec
10fec410ee11123939113930013436333216151406232226011406070e012322263534363332
1633323635112122263534363321321615028b28413d2724404128010f1e2239ca88716a3323
1b721d927cfe796131282802271b1f04bc6b392e59582727fbba7f842c4a4d2e301f2f0f87a6
02cf1f292323161300020066ffe7045a03b6001c002300bd414e006600050076000500a60005
00a6001600a9001000a9000200b600050007000300e0000f002100e00015001d00b900800006
00010006008f000000e00000000200000101001500f7000f00d30024004400020054000200a6
001700a9001300a9001100a9000100b5001700ba001300ba001100ba0001000a001b001c0018
0000001d0012001c0009001e0028000900180058001d002800120056002410fcecf4c4ec1139
111239111239315d0010e4ecfc5dc45dec10ee10ee305d011e01333224333216151406070e01
2322003534003332001514062b0125212e01232206011408b39b7501141d1e282a2e64d569e4
feee0122e9d301162f680ffd65028b0fa97b85b601a2909d7d261c1d301731340107d9dd0112
ff00b638268377918c000000000101a2fff2032b0156000b0014400903d409d30c061b000c10
d4ec310010f4ec3025343633321615140623222601a26d57596c6d58586ca44e646250506262
000100390000046f04a200280050402a080b060013032515b91ce4032713c40b251f26221c16
130d0414100b060022260031063a1910260f142910dcecc432f4ec10c4111239111217391112
393931002fee32c6feee32111239391139300134363332161d0111140623212322263534363b
01112322263534363b01213332161514062b01112103df1e2a24242622fc892f24242b4c7d7d
4a2d25272b01c32f24262d4ca8021401934b2c25272bfeb723272424281d03851f2925232424
291ffc7b0000000300540000047304a20008001100320076404f2909e707e61b10b922e41900
c412042904251429142524255929690569296903790379057929862b8a030e1c221913041f1a
322c122926100a0107231206000d0d261f1626040d2c1609000f1a2f3310fcec32c4d4ecc410
c410ee111739123911123911121739315d002fee32feee32feee3930253332363534262b0135
3332363534262b01132122263534363b011123222635343633213216151406071e0115140607
0e01230191debc9a93b9e8d18e897c74f8c9fe4023232c5321214d2c242201d3d4de44436c69
5a5231786e8d5f6e6f5e7b5a5e595ffbee2424281d03851f292325a59d4f7626278c6c5b9630
1c190000000200cdffdf0400050e000b0017006c405b06b90c00b912be0cd5183b0b3b073401
34054b0b4b07440144055b115b0d54136b116b0d64139b0b9b0794019405a90ba907a601a605
b90bb907b601b605c601c605d711d70dd813d817e711e70de813e8172409071503070f1c1810
f4ecd4ec315d0010e4fcec10ee30012202151412333212353402032202111012333212111002
02667380807374808074bcddddbcbcdede047ffef0f8f9feef0111f9f80110fb600163013501
340163fe9cfecdfecdfe9b0000000001ffeefe1d04dffe9300030011400601000400020410d4
c4310010d4c4300115213504dffb0ffe9376760000010039fe71048d039c002f00be41320022
002000440020006500200066001000040028002000300011000e000000b90007002f0021001e
000300110100002800170104000701030030000f00100011002f0000001f002000210008002c
001400250067002c0004000b001b0067002c0014003010d4c4e4d4c410e6111217390010e4fc
3cec173210ee32111239304b53584114001001450020014500100011000f0145002101450000
002f000000200145001f0145001100110010070510ecec0710ecec08ecec5931005d01333216
151406232122263534363b0113012226353436332132161514062b0109012322263534363b01
321615140607021b2b49342927fe332f252727d9a2fe914231282801173826324325010f0114
2745342639f729272c38ff001f29232420272424013f02cf202823231f272820fdd902272028
271f2323262002000000000300cfffdf03fe050e000b0017002f0091407324180faf090109da
03b92a15b91ebe2ad5300a1d051f1a1d151f7a087a04750a75028416840e820a82028b148b10
8b088b049b1d9b2b941f94299b1894249b2f9b1994239425a423a425ab2fab19a91ca620b620
b623b625b91cb919b92e2624180c120721230607270c071b232700072d1c3010f4ecc4f4ec10
eef4ee113939315d0010e4fcec10eef45dce3939300114163332363534262322061314163332
36353426232206132e01353436333216151406071e011514062322263534360173856e6f8588
6c6b880a8366678383676782216162deadaae26065656ce3b5b5e26c01586a84806a68817f01
ee637e7f64607d7dfe793093629bc7c8906b9430299f6ba5d0d2a7669f0000000001019cfe6f
033104c5001d0021401103090fc71bb31e0c00139006010611151e10d4ec5de432310010fce4
393930011406070602151416171e01151406232226272602353412373e013332160331431144
393031195713101f4c326b6a57593a622610130498158b299ffef88e83f57a42b31516194148
990150b9a90133905f6019000001019afe6f033104c5001d0033402209031bc70fb31e190919
03191319172909290329132917089f0601061115130c001e10d43cf4ec5d315d0010fce43939
30013436373612353426272e01353436333216171612151402070e01232226019a4412433a31
321a561410214b326b6a59593e5d261014fe9e148929a001098d80f77c42b3161419414798fe
aeb9a9fecc90625c1a000000000100d1019c03fa04a200460076404e453e413c3b35342e2d2c
26251f1e1d1716100f0e080701001504221a380441b34742413c001e05452c26251f2d053d3b
35342e0431291d1716100f05450e08070104130b15131445311529143d4710d4e4e4dce4e411
173912173911121739121739111739310010fccc32c4321117391239393001253e013332161f
011e011514060705171e011514060f010e012322262f01070e012322262f012e013534363f01
252e013534363f013e013332161705033534363b0132161d0102a00108070e04080b07190303
100ffee8bc07070d0b420c0e05060e069493070f0704100a400d0e0807bcfeea101107011906
0c08080c0501081b121b4e1c11035a7102040f144c0c0f03080c033fda060f07050f092f0907
0c0af8f80b0b08082f090f07050f06da3f030d090215054c140f020273011f0c110c0c110c00
000000010058ffee046204ba003000a0413a0064000d0074000d0084000d0094000d00a4000d
0005001d00170008001e0008000e0006002f0029002c0000000e000b00fa0017001f000600b9
002c0026008f0000000100000108001700d30031002600200023001d00060000000700030023
0011002f000700270027000f001d0001001d003110d45d3cec32c4c4c4113939111239393100
10e4fc5d3cc4ec3210fec41112393911123939111239305d0132161514062321111416333236
333216151406070e01232226272e013d01112322263534363b013d0134363332161d01037731
2d2a2afe6b55675bfe1e1c27313b629d45759f271411aa2a2634557125272c22036422252323
feb2a4686a281d21311727244b4a2360641f014e2125291ecd352b293259cb0000020085fe71
0485039e000b003700ed41610043002a004c00200053002a005c0020006c00200073002a007c
002000ac002000a3002a00bc002000ba002300b3002a000c002c002b0036002f001f001e000c
00030022000600360100002f0018001b00e00012000000e00028000600e00022001201030028
...
c859212d2cb002254964b040515820c859212d2c20100720b00050b00d7920b8ffff5058041b
0559b0051cb0032508b0042523e120b00050b00d7920b8ffff5058041b0559b0051cb0032508
e12d2c4b505820b80143454459212d2cb002254560442d2c4b5358b00225b002254544592121
2d2c45442d0000000001000000010000f567a62f5f0f3cf50111080000000000a380f9f00000 2d2c45442d0000000001000000010000f567918f5f0f3cf50111080000000000a380f9f00000
0000c9b116dcfac3fcbb061e08b7000000060001000100000000000100000608fe0800000696
fac3fac2061e00010000000000000000000000000000002c04cd006604cd00a604cd00b204cd
005a04cd006d04cd005804cd01a204cd000004cd004204cd004804cd006404cd004e04cd00cd
04cd010404cd00ac04cd00b204cd00a204cd004404cd005204cd008704cdfffe04cd002904cd
016d04cd00ba04cd00c704cd006004cd00e904cd006604cd01a204cd003904cd005404cd00cd
04cdffee04cd000604cd003904cd006804cd005804cd00cf04cd019c04cd019a04cd00d104cd 016d04cd000604cd006004cd006804cd00ba04cd00c704cd00e904cd006604cd01a204cd0039
04cd005404cd00cd04cdffee04cd003904cd00cf04cd019c04cd019a04cd00d104cd005804cd
008504cd00cd04cd009a00000000000000440000013400000340000003dc000004d80000063c
000006a8000006a80000081c0000094c00000ab000000c2400000d5c00000e0400000ef40000
103800001158000012bc000014ec00001604000017f0000019080000198800001a3800001bd4
00001cd400001dc800001efc00001f3c0000200000002108000021d0000021fc000023780000
24c40000262c0000275400002874000028f80000299000002adc00002c6400002d3c00002d94 103800001158000012bc000014ec00001604000017f0000019080000198800001b0400001c04
00001d6c00001e1c00001fb8000020ac000021e000002220000022e4000023ec000024b40000
24e00000262c0000274c000027d000002868000029b400002adc00002c6400002d3c00002d94
00010000002c01910009007a00050002001000400011000007e80aa10003000141ff02800141
001300030140000c0003013e00fe0003013d00fe0003013a003e0003013900bb0003013800fe
0003013700bb00030136005d0003013500960003013400fe0003013300bb0003013200640003
...
Encoding 105 /i put
Encoding 106 /j put
Encoding 109 /m put
Encoding 110 /n put
Encoding 111 /o put
Encoding 112 /p put
Encoding 113 /q put
Encoding 114 /r put
Encoding 115 /s put
Encoding 116 /t put
Encoding 117 /u put
Encoding 118 /v put
Encoding 120 /x put
/CharStrings
35 37 dict dup begin
/.notdef 0 def
/f 1 def
/r 2 def
...
/numbersign 24 def
/s 25 def
/v 26 def
/b /four 27 def
/x /d 28 def
/d /i 29 def
/i /b 30 def
/five /x 31 def
/four /five 32 def
/a /n 33 def
/eight 34 def
/a 35 def
/u 36 def
end readonly def
/sfnts [
<0001000000090080000300106376742051a2978000001e68000002bc6670676d611770640000
21240000008d676c7966ea1c53ba0000009c00001dcc686561648a879c00000021b400000036
686865610711ff8c000021ec00000024686d7478a8091193000022100000008c6c6f63617a80
82340000229c000000486d617870083e0d81000022e40000002070726570a926421700002304 <0001000000090080000300106376742051a2978000002074000002bc6670676d611770640000
23300000008d676c7966b32fa9b40000009c00001fd8686561648a879c00000023c000000036
686865610711ff8e000023f800000024686d7478b1a312250000241c000000946c6f63618a3a
924c000024b00000004c6d61787008400d81000024fc0000002070726570a92642170000251c
00000b8c00020066fe96046605a400030007001740090400060108050204002fccdccc310010
d4ccd4cc301311211125211121660400fc73031bfce5fe96070ef8f2720629000000000100c7
000004620521003100574030312e2225002b2ed7251907f42000f325f61709eb10201a171104
...
3912391117395d310010e4fc3cec1732113939113930011b012322263534363b013216151406
2b01010e012322272627012322263534363b0132161514062301b6b4bd1036393946eb463938
3611fed721353764230402fee91036393a45fe453a393502c1fe5601aa38363b32333a3638fd
89441f540a05027738363b32333a36380002003bffe70487051d000b003000634037302c2519
181c060c0f0006c11525eb2c00c10fea15ae2cf023eb1c262923201c19182d041d0309241203
0c09124d294c204b2c241d493110fc3c3ce4e4e4fcc410ee111217391139113931002feeeee4
feee10ee10ee1112391112393911123930012206151416333236353426253e01333200151400
232226271514062b0122263534363b01112322263534363b01321615028f62818063638182fe
c1308448d00109fef2cd618f2d1f1c9a44393736101036393a45bb201d02c793717493947370
947b2a30feedd7c4fef94343421417333c3537036439363b341f23000001006a0000046d039c
0041006e40482023193322110104120200340feb3b08f93112eb2a192f1d203f291039103327
3c05333f3c1d491059100a3233340001021011122122230c162e050c272e0c1d201601162e3f
384210d4c4c4d45dc4c410c610c6111217395d31002f3cee32fe3cee32393911173912393930
01173722263534363b0132161514062b0107133332161514062b0122263534363b0127073332
161514062b0122263534363b0137272322263534363b01321615140602006a73211e3331d543
3a393c27d1fa173a3b3d44f231331f22087f7b0424203133d54439373713ede51f3b3c3c43f2
33311f02d37d7d2f333235343b3735e4ff0037373b343531342f8d8d2d2f3835343b3737f0f4
36363b3436372e2e00020044ffe7048d051d002400300068403d2420191825150b0c072bc10f
19eb2025c115ea0fae20f000eb0720181d001d101d3f1d4f1d0421080b0c04180104001d3e2e
1809044807002824124e3110f4ecd43ce4fcc4e41112391217395d11123931002fecece4fcec
10ee10ee11393911123911123930253332161514062b0122263d010e01232200353400333216
1735232226353436332132161501220615141633323635342604101136363944991d1f319a60
c4fef8010bce47873885453a3a4501372219fe2b62818063638182db37353b34171446434701
0bc8d001122f2bfd353a3b341c26fdec9371749394737094000200a6000004480560001b0027
0052402d1b17101cfa2210eb17f90e00eb0717110e08042514181f0f0701040025531f000401
0400140f0b010b00090f2810dcecd45dc410c65dd5ee111239391112391112173931002fee32
feeeddee1112393025333216151406232122263534363b011123222635343633213216150332
1615140623222635343602f2d7453a3b44fd5c443b3946d771433a3845012d1c1e9049302b50
4e2d2edb323a3b34343b3a3201e6333b3b32171401ef386a66312e4580460001008dffdf041b 89441f540a05027738363b32333a36380002009600000435050a0038003b0082404c1a390116
1c12393835342e053106290d030c2a05102d063a00c225102312c231b91c592e013a262d0329
2e231d0324200c19093534241c13100d040019093f2001201539241909151100293c10d4d43c
e4fc3ce45d10c411173912393911123911121739121739315d002feefe3cd53cfe3cc4391217
3911121739111239305d011e013332363332161514060f010e012b0115333216333216151406
232122263534363b01352122263d01343637013e013332161f011e0115070121037103060714
34122a30030316061c16703b091c0424323b44fe5a44393a4392fe331a1b0b0d01a40f131109
0d05b20f10d9fec6013a01f401013329250a16094a15147d023529322c2c32332d7d201e3d25
291702ca190c01011f031a1699fdd70000020044ffe7048d051d002400300068403d24201918
25150b0c072bc10f19eb2025c115ea0fae20f000eb0720181d001d101d3f1d4f1d0421080b0c
04180104001d3e2e1809044807002824124e3110f4ecd43ce4fcc4e41112391217395d111239
31002fecece4fcec10ee10ee11393911123911123930253332161514062b0122263d010e0123
2200353400333216173523222635343633213216150122061514163332363534260410113636
3944991d1f319a60c4fef8010bce47873885453a3a4501372219fe2b62818063638182db3735
3b341714464347010bc8d001122f2bfd353a3b341c26fdec9371749394737094000200a60000
04480560001b00270052402d1b17101cfa2210eb17f90e00eb0717110e08042514181f0f0701
040025531f0004010400140f0b010b00090f2810dcecd45dc410c65dd5ee1112393911123911
12173931002fee32feeeddee1112393025333216151406232122263534363b01112322263534
36332132161503321615140623222635343602f2d7453a3b44fd5c443b3946d771433a384501
2d1c1e9049302b504e2d2edb323a3b34343b3a3201e6333b3b32171401ef386a66312e458046
0002003bffe70487051d000b003000634037302c2519181c060c0f0006c11525eb2c00c10fea
15ae2cf023eb1c262923201c19182d041d03092412030c09124d294c204b2c241d493110fc3c
3ce4e4e4fcc410ee111217391139113931002feeeee4feee10ee10ee11123911123939111239
30012206151416333236353426253e01333200151400232226271514062b0122263534363b01
112322263534363b01321615028f62818063638182fec1308448d00109fef2cd618f2d1f1c9a
44393736101036393a45bb201d02c793717493947370947b2a30feedd7c4fef9434342141733
3c3537036439363b341f23000001006a0000046d039c0041006e404820231933221101041202
00340feb3b08f93112eb2a192f1d203f2910391033273c05333f3c1d491059100a3233340001
021011122122230c162e050c272e0c1d201601162e3f384210d4c4c4d45dc4c410c610c61112
17395d31002f3cee32fe3cee3239391117391239393001173722263534363b0132161514062b
0107133332161514062b0122263534363b0127073332161514062b0122263534363b01372723
22263534363b01321615140602006a73211e3331d5433a393c27d1fa173a3b3d44f231331f22
087f7b0424203133d54439373713ede51f3b3c3c43f233311f02d37d7d2f333235343b3735e4
ff0037373b343531342f8d8d2d2f3835343b3737f0f436363b3436372e2e0001008dffdf041b
04ee002a007c412b001f000100190004002000230000001c001900c30004001300cf00100159
000a0050000400010004000000c1002300d0000a00b5002b002a0024002700160023001f0000
001600040027000700000019000d001f002b10d4c4ecd4c4ec11123911123939310010e4fcfc
cc5d10eee610fec4111239111239393001153e01333216151404212226353436333216333236
35342623220623222635113436332132161514062301b0416a2eb4defef0fefdbac1442f1dc1
45717c756440b02039301d23028f3e31303f040ee71312edc1dae5525030453a756b687b523f
4c01e4361c31403f300000000002009600000435050a0038003b0082404c1a3901161c123938
35342e053106290d030c2a05102d063a00c225102312c231b91c592e013a262d03292e231d03
24200c19093534241c13100d040019093f2001201539241909151100293c10d4d43ce4fc3ce4
5d10c411173912393911123911121739121739315d002feefe3cd53cfe3cc439121739111217
39111239305d011e013332363332161514060f010e012b011533321633321615140623212226
3534363b01352122263d01343637013e013332161f011e011507012103710306071434122a30
030316061c16703b091c0424323b44fe5a44393a4392fe331a1b0b0d01a40f1311090d05b20f
10d9fec6013a01f401013329250a16094a15147d023529322c2c32332d7d201e3d25291702ca
190c01011f031a1699fdd70000020068ffe7047d03b600270034005d4033181b17172b140b31
072834002bd31e2780140114ed31c10e1bd724ea00eb0eae07080b170104482817090700472e
242111463510f4c4ecf43cec32e43912393931002fe4ecfcec10eefe713ccdee113939111239
11123911123930253332161514062b012226270e012322263534363332161735342623220623
222635343633321615072e012322061514163332363703fe1036393b445e32311053ba5fa1b8
eed7306c43575542cd302f3aedccd5b8f23254246e7d504b457a3bdb39353a332632373aa08b
96a60a0b135a5e62372d515fa4c4b20b0b4a413a3d282a0000030098ffdf0435050e000b0023
002f005b403a180c2a8000f000020006c31224c31eb912b5300b1d041f32183d0c42184d0c52
185d0c080c2109181b032d1d211e091d0f271d1b1e0f031d153010d4ecc4f4ec10eef4ee1112
39111239315d0010e4fcec10eed45dce393930012206151416333236353426371e0115140423
2224353436372e0135343633321615140601220615141633323635342602665c70725a5d7072
89717aff00cfcbfefd7a716e6ffbc5c5fe71feae546e6e54566b6c021966555169665453686e
29a06aa5d0d0a16ca12a3092639ac8ca986394019d644c4c64614f4c6400000000ec008d00f3
0102010c0221024c00a0010200f800e10108020800d1013b01b800cd00d101a201e701a20000
007500f200750102038b001901020102000e010c0442030a01a200f8011400db00d704ec00c1
00f8010201020121007f003100ba03c900f800d700d7000000000056007f034c0362039c001d
00e500c100000468038d00c101a8018700ec01c700460396007d00cf0000007d007d03cd0046
011400cf033b00f8010c01ae019e000000f800f8000004420100010e02d100c1008f021d008f
00f800ec00fe00aa00aa00aa013f00890062006604c90087006f006800fe00b200c300dd00c3
00b2036800ec01ec013d019e0129003100f801020121018f009602f00196010e021d034a0352
00b800a600a6029100a600b200c90000009302830400043900ba01830104010e00c901040112
01e300d100b604000191000000520000007d007d0000000000ec04f604a204a204a204a20000
0019013d01ec009600b600d90000002104ee04ee04ee04ee0098022104a204a2001f00d900c5
00d900d900d90614065801b801c700cd0179022502a0015c00e3017900d904ee00d90021009c
009c0073040a00d900b400b4015004a200d9028500d900000056007d028500d9009c0614040a
039c039c039c039c00d9023d025405cd053d051d00d901a2039c00d9051d0521018d0191039c
013900d3018d00d900d900a8039c009c00d703cd06c1021d008f008f01f600cf00a2013f0142
0062007904c900790079007d006800fe00aa030800a8006000d9015c00be0225009602f002f6
0196010e021d01c70210034a01ee0321009a01ee04ee057102d1008d008d0571008d02d104a2
00ac0093028302350083041400cd033b0168006f02d9001900d907a2039c00cb0019065200c5
07b600d904a204a204a204a200d900f6056d00cd005600d90127019602a200d9013b018500d9
00d916177fff008200304007060504030201002c2010b002254964b040515820c859212d2cb0
02254964b040515820c859212d2c20100720b00050b00d7920b8ffff5058041b0559b0051cb0
032508b0042523e120b00050b00d7920b8ffff5058041b0559b0051cb0032508e12d2c4b5058
20b8015b454459212d2cb002254560442d2c4b5358b00225b0022545445921212d2c45442d00
00000001000000010000f814ec5c5f0f3cf501110800000000005faa3a7000000000c9b116dc
fac1fcc6064608f3000100060001000000000000000100000608fe0800000696fac1faca0646
00010000000000000000000000000000002304cd006604cd00c704cd007704cd004604cdffee
04cd000004cd005804cd000204cd004604cd00ac04cd00d304cd007504cd015c04cd00cd04cd
007d04cd008104cd005804cd019604cd002b04cd004604cdffee04cd007b04cd005004cd0196
04cd00c904cd009e04cd003904cd003b04cd006a04cd004404cd00a604cd008d04cd009604cd
006804cd009800000022009000fa014201f401f4026602e60366041a047404b804fa05960614
067206dc06fe075a07fc0812087008ee092409d40aa00b020b7a0c080c820ce40d600df80e70
0ee600010000002301320009007c00050002001000400011000007e80b900003000141ff0280
0159000c0003015800090003015700de000b00050157001d000301560155000c00050156001e
00030155000c0003015400dd00100005015400a600030153002e0003015200f1000d00050152
002e0003015100fa0003014d014c00290005014d006b0003014c00290003014b014a008c0005
014b00fe0003014b00c00004014a014900590005014a008c0003014a00800004014901480026
00050149005900030149004000040148002600030147005d0003014600fe0003014500fe0003
014400fe0003014300ad004700050143007d00030143ffd00004014200fa0003014100fe0003
013f00fe0003013e00ad00470005013e007d0003013b00fe0003013a00bb0003013900fa0003
013800fe0003013700fe0003013600fe0003013300960003013200fe00030131003200030130
00350003012f012a00140005012f005d0003012e00640003012d00960003012c00fa0003012b
012a00140005012b00fe0003012a001400030129003a00030128007d00030127003a00030126
00fe00030124012300140005012400fe0003012300140003012000fe0003011f011e00a60005
011e00a60003011c00fe0003011b00290003011a00530003011900320003011800fe00030117
00c80003011600fe00030115003900030113003200030112011100fa0005011200fe00030111
00fa00030110006b0003010e00fe41ff0003010c010b00fe0005010b00fe0003010a00fe0003
010900fe0003010800fe0003010400fe0003010300fe00030102010100140005010100140003
010000e6000a000501000024000300ff00fe0017000500ff0078000300fe0017000300fd004b
000300fc00fe000300fb005d000300fa00fe000300f900e6000a000500f900fe000300f800f7
00fa000500f800fe000300f700fa000300f600f500fa000500f600fe000300f500ef000e0005
00f500fa000300f4004b000300f300e6000a000500f30035000300f2002e000300f1000d0003
00f000ef000e000500f000fe000300ef00ee0009000500ef000e000300ee0009000300ed00ec
0011000500ed002e000300ec0011000300eb00cf007d000500eb00fe000300ea00e900940005
00ea00fe000300ea00c0000400e900e80061000500e90094000300e90080000400e800e7002e
000500e80061000300e80040000400e700e6000a000500e7002e000300e6000a000300e30096
000300e20014000300e100e0001a000500e100fe000300e000df0010000500e0001a000300df
0010000300de000b000300dd0010000300dc00bb000300db00a8000a000500db00fe000300da
00fe000300d90035000300d8007d000300d7002c000300d40064000300d300fe000300d200b4
0041000500d2005d000300d100fe000300d000fe000300cf007d000300ce00fe41ff000300cd
00fe000300cc00fe000300cb00ca0014000500cb00fe000300ca0014000300c90032000300c8
00fe000300c700c60047000500c700fe000300c60047000300c500c40014000500c400140003
00c30064000300c2002e000300c1007d000300c000bf0025000500c000fe000300bf00250003
00be00b40041000500be00fe000300beffd0000400bd00bc001d000500bd0032000300bdffc0
000400bc00a8000a000500bc001d000300b900b8008c000500b900fe000300b900c0000400b8
00b70059000500b8008c000300b80080000400b700b60026000500b70059000300b700400004
00b60026000300b500b40041000500b500fe000300b40041000300b300b200fe000500b30014
000300b200fe000300b100fe000300b000fe000300af007d000300ae00ad0047000500ae0096
000300ad0047000300ac00ab008c000500ac00fe000300ac00c0000400ab00aa0059000500ab
008c000300ab0080000400aa00a90026000500aa0059000300aa0040000400a900a8000a0005
00a90026000300a8000a000300a6000f000300a50011000300a400a20010000500a400fe0003
00a300fe000300a20010000300a100590011000500a100380003009f00fe0003009e00fe0003
009d00960003009c00960003009a009900290005009a007d0003009900290003009800fe0003
009700fe0003009500fe000341ff009400fe00030093009200140005009300bb000300920014
0003008f000d0003008e00960003008d008c00530005008d00fe0003008c00530003008b00fe
0003008a001b0003008900fe0003008800fe000300870086007d00050086007d0003008300fe
0003008000fe0003007f007e00210005007f00290003007e007d00640005007e00210003007d
00640003007c00290003007b00fe0003007a00fe000300790078000a00050078000a00030077
00640003007600fe0003007500fe0003007400fe00030073007200260005007300fe00030072
00260003007100320003006f00960003006e00320003006b006a00fa0005006a00fa00030067
00350003006600fe0003006500fe0003006400fa00030063006200500005006300fe00030062
00500003005e00fe0003005c00fe0003005b00fa0003005a00bb000300590011000300580008
000e00050058003e00030057003e00030056000e000300550054000e0005005500fe00030054
000e00030053005200320005005200320003005100fe0003005000bb0003004f002300230005
004f00320003004e00fe0003004d00fe0003004c00fe0003004b004a000b0005004b00fe0003
004a000b00030049002900030048003400090005004800fe0003004700fe00030046002c0003
004500fe00030043003c0003004200fe00030041006b0003004000fe000341fe003e000a0003
003d00530003003c0008000e0005003c00960003003a00fe0003003900fe0003003800fe0003
00370036001f0005003700fe000300360035000f00050036001f00030035000f000300340009
00030033002c000300320096000300310008000e0005003100530003003000fe0003002f003a
0003002e007d0003002d00fe0003002c002b00210005002c00fa0003002b002900640005002b
00210003002a002900640005002a0096000300290008000e0005002900640003002800960003
002700fe0003002600fe0003002500fe00030024002300230005002400bb000300230008000e
0005002300230003002200640003002100fe0003002000960003001f000300260005001f005d
0003001e00fe0003001d001c00260005001d00fe0003001c00260003001b00fe0003001a00fe
00030019001b00030018001500080005001800290003001700fe000300160015000800050016
00bb0003001500080003001400fe00030013001200140005001300fe00030012001400030011
001000fa0005001100fe0003001000fa0003000f00fe0003000d00fe0003000b000000230005
000a00000023000500090008000e00050009009600030008000e000300060005001700050005
0017000300040003002600050004007d0003000300260003000200fe00030001007d00030000
0023000300010118858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b 4c01e4361c31403f30000000000100500000048703b400390085404d32332e13161039032700
13c13627eb2ef936ea25170e0300eb1e07282b25222f3233031f181b160e0b080104000f0b4f
0b5f0b030ba40f08090448001b481e1609224b0700512b4c2e261f503a10fc3c3ce4e432e4fc
3ce410e6fe3ce6711112391112391112391217391139113931002f3cee1732eefeee10ee1112
17391112393930253332161514062b0122263534363b0111342623220615113332161514062b
0122263534363b01112322263534363b0132161d013e0133321615040a0d38383944f6433b39
390c434e53690c39383a43f8433a38390c1136383a45aa1c1d2e8f5ea09ddd37373b34343b37
37012178657964fedf37373b34343b373701e437353b3416154e4849c2c700030098ffdf0435
050e000b0023002f005b403a180c2a8000f000020006c31224c31eb912b5300b1d041f32183d
0c42184d0c52185d0c080c2109181b032d1d211e091d0f271d1b1e0f031d153010d4ecc4f4ec
10eef4ee111239111239315d0010e4fcec10eed45dce39393001220615141633323635342637
1e01151404232224353436372e0135343633321615140601220615141633323635342602665c
70725a5d707289717aff00cfcbfefd7a716e6ffbc5c5fe71feae546e6e54566b6c0219665551
69665453686e29a06aa5d0d0a16ca12a3092639ac8ca986394019d644c4c64614f4c64000000
00020068ffe7047d03b600270034005d4033181b17172b140b31072834002bd31e2780140114
ed31c10e1bd724ea00eb0eae07080b170104482817090700472e242111463510f4c4ecf43cec
32e43912393931002fe4ecfcec10eefe713ccdee113939111239111239111239302533321615
14062b012226270e012322263534363332161735342623220623222635343633321615072e01
2322061514163332363703fe1036393b445e32311053ba5fa1b8eed7306c43575542cd302f3a
edccd5b8f23254246e7d504b457a3bdb39353a332632373aa08b96a60a0b135a5e62372d515f
a4c4b20b0b4a413a3d282a0000010042ffe90479039c0031006a403b18172e13312b1e030c2a
0b07002ec11b1f00eb2607f91bae0ceb13272a20231e0d1014081718040b01044c0700091048
130b51234c2a09261e493210fc3cece4f43ce4fc3ce4391217391139111239123931002fece4
fc3cec3210ee111239391217391112393930012322263534363b01321615113332161514062b
0122263d010e0123222635112322263534363b013216151114163332363503041036373845bd
1b1e1036393a45a81c1f308b5ea19c1136383946bc1b1c444e536b02c138363b321714fd6a38
343c3318154c4848c2c8014e38363b321714fe2f7b647b6400ec008d00f30102010c0221024c
00a0010200f800e10108020800d1013b01b800cd00d101a201e701a20000007500f200750102
038b001901020102000e010c0442030a01a200f8011400db00d704ec00c100f8010201020121
007f003100ba03c900f800d700d7000000000056007f034c0362039c001d00e500c100000468
038d00c101a8018700ec01c700460396007d00cf0000007d007d03cd0046011400cf033b00f8
010c01ae019e000000f800f8000004420100010e02d100c1008f021d008f00f800ec00fe00aa
00aa00aa013f00890062006604c90087006f006800fe00b200c300dd00c300b2036800ec01ec
013d019e0129003100f801020121018f009602f00196010e021d034a035200b800a600a60291
00a600b200c90000009302830400043900ba01830104010e00c90104011201e300d100b60400
0191000000520000007d007d0000000000ec04f604a204a204a204a200000019013d01ec0096
00b600d90000002104ee04ee04ee04ee0098022104a204a2001f00d900c500d900d900d90614
065801b801c700cd0179022502a0015c00e3017900d904ee00d90021009c009c0073040a00d9
00b400b4015004a200d9028500d900000056007d028500d9009c0614040a039c039c039c039c
00d9023d025405cd053d051d00d901a2039c00d9051d0521018d0191039c013900d3018d00d9
00d900a8039c009c00d703cd06c1021d008f008f01f600cf00a2013f01420062007904c90079
0079007d006800fe00aa030800a8006000d9015c00be0225009602f002f60196010e021d01c7
0210034a01ee0321009a01ee04ee057102d1008d008d0571008d02d104a200ac009302830235
0083041400cd033b0168006f02d9001900d907a2039c00cb0019065200c507b600d904a204a2
04a204a200d900f6056d00cd005600d90127019602a200d9013b018500d900d916177fff0082
00304007060504030201002c2010b002254964b040515820c859212d2cb002254964b0405158
20c859212d2c20100720b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e1
20b00050b00d7920b8ffff5058041b0559b0051cb0032508e12d2c4b505820b8015b45445921
2d2cb002254560442d2c4b5358b00225b0022545445921212d2c45442d000000000100000001
000033420c785f0f3cf501110800000000005faa3a7000000000c9b116dcfac1fcc6064608f3
000100060001000000000000000100000608fe0800000696fac1faca06460001000000000000
0000000000000000002504cd006604cd00c704cd007704cd004604cdffee04cd000004cd0058
04cd000204cd004604cd00ac04cd00d304cd007504cd015c04cd00cd04cd007d04cd008104cd
005804cd019604cd002b04cd004604cdffee04cd007b04cd005004cd019604cd00c904cd009e
04cd003904cd009604cd004404cd00a604cd003b04cd006a04cd008d04cd005004cd009804cd
006804cd004200000022009000fa014201f401f4026602e60366041a047404b804fa05960614
067206dc06fe075a07fc0812087008ee092409d40aa00b020b9a0c140c760cee0d7c0df80e86
0efc0f740fec00010000002501320009007c00050002001000400011000007e80b9000030001
41ff02800159000c0003015800090003015700de000b00050157001d000301560155000c0005
0156001e00030155000c0003015400dd00100005015400a600030153002e0003015200f1000d
00050152002e0003015100fa0003014d014c00290005014d006b0003014c00290003014b014a
008c0005014b00fe0003014b00c00004014a014900590005014a008c0003014a008000040149
0148002600050149005900030149004000040148002600030147005d0003014600fe00030145
00fe0003014400fe0003014300ad004700050143007d00030143ffd00004014200fa00030141
00fe0003013f00fe0003013e00ad00470005013e007d0003013b00fe0003013a00bb00030139
00fa0003013800fe0003013700fe0003013600fe0003013300960003013200fe000301310032
0003013000350003012f012a00140005012f005d0003012e00640003012d00960003012c00fa
0003012b012a00140005012b00fe0003012a001400030129003a00030128007d00030127003a
0003012600fe00030124012300140005012400fe0003012300140003012000fe0003011f011e
00a60005011e00a60003011c00fe0003011b00290003011a00530003011900320003011800fe
0003011700c80003011600fe00030115003900030113003200030112011100fa0005011200fe
0003011100fa00030110006b0003010e00fe41ff0003010c010b00fe0005010b00fe0003010a
00fe0003010900fe0003010800fe0003010400fe0003010300fe000301020101001400050101
00140003010000e6000a000501000024000300ff00fe0017000500ff0078000300fe00170003
00fd004b000300fc00fe000300fb005d000300fa00fe000300f900e6000a000500f900fe0003
00f800f700fa000500f800fe000300f700fa000300f600f500fa000500f600fe000300f500ef
000e000500f500fa000300f4004b000300f300e6000a000500f30035000300f2002e000300f1
000d000300f000ef000e000500f000fe000300ef00ee0009000500ef000e000300ee00090003
00ed00ec0011000500ed002e000300ec0011000300eb00cf007d000500eb00fe000300ea00e9
0094000500ea00fe000300ea00c0000400e900e80061000500e90094000300e90080000400e8
00e7002e000500e80061000300e80040000400e700e6000a000500e7002e000300e6000a0003
00e30096000300e20014000300e100e0001a000500e100fe000300e000df0010000500e0001a
000300df0010000300de000b000300dd0010000300dc00bb000300db00a8000a000500db00fe
000300da00fe000300d90035000300d8007d000300d7002c000300d40064000300d300fe0003
00d200b40041000500d2005d000300d100fe000300d000fe000300cf007d000300ce00fe41ff
000300cd00fe000300cc00fe000300cb00ca0014000500cb00fe000300ca0014000300c90032
000300c800fe000300c700c60047000500c700fe000300c60047000300c500c40014000500c4
0014000300c30064000300c2002e000300c1007d000300c000bf0025000500c000fe000300bf
0025000300be00b40041000500be00fe000300beffd0000400bd00bc001d000500bd00320003
00bdffc0000400bc00a8000a000500bc001d000300b900b8008c000500b900fe000300b900c0
000400b800b70059000500b8008c000300b80080000400b700b60026000500b70059000300b7
0040000400b60026000300b500b40041000500b500fe000300b40041000300b300b200fe0005
00b30014000300b200fe000300b100fe000300b000fe000300af007d000300ae00ad00470005
00ae0096000300ad0047000300ac00ab008c000500ac00fe000300ac00c0000400ab00aa0059
000500ab008c000300ab0080000400aa00a90026000500aa0059000300aa0040000400a900a8
000a000500a90026000300a8000a000300a6000f000300a50011000300a400a20010000500a4
00fe000300a300fe000300a20010000300a100590011000500a100380003009f00fe0003009e
00fe0003009d00960003009c00960003009a009900290005009a007d00030099002900030098
00fe0003009700fe0003009500fe000341ff009400fe00030093009200140005009300bb0003
009200140003008f000d0003008e00960003008d008c00530005008d00fe0003008c00530003
008b00fe0003008a001b0003008900fe0003008800fe000300870086007d00050086007d0003
008300fe0003008000fe0003007f007e00210005007f00290003007e007d00640005007e0021
0003007d00640003007c00290003007b00fe0003007a00fe000300790078000a00050078000a
0003007700640003007600fe0003007500fe0003007400fe00030073007200260005007300fe
0003007200260003007100320003006f00960003006e00320003006b006a00fa0005006a00fa
0003006700350003006600fe0003006500fe0003006400fa00030063006200500005006300fe
0003006200500003005e00fe0003005c00fe0003005b00fa0003005a00bb0003005900110003
00580008000e00050058003e00030057003e00030056000e000300550054000e0005005500fe
00030054000e00030053005200320005005200320003005100fe0003005000bb0003004f0023
00230005004f00320003004e00fe0003004d00fe0003004c00fe0003004b004a000b0005004b
00fe0003004a000b00030049002900030048003400090005004800fe0003004700fe00030046
002c0003004500fe00030043003c0003004200fe00030041006b0003004000fe000341fe003e
000a0003003d00530003003c0008000e0005003c00960003003a00fe0003003900fe00030038
00fe000300370036001f0005003700fe000300360035000f00050036001f00030035000f0003
0034000900030033002c000300320096000300310008000e0005003100530003003000fe0003
002f003a0003002e007d0003002d00fe0003002c002b00210005002c00fa0003002b00290064
0005002b00210003002a002900640005002a0096000300290008000e00050029006400030028
00960003002700fe0003002600fe0003002500fe00030024002300230005002400bb00030023
0008000e0005002300230003002200640003002100fe0003002000960003001f000300260005
001f005d0003001e00fe0003001d001c00260005001d00fe0003001c00260003001b00fe0003
001a00fe00030019001b00030018001500080005001800290003001700fe0003001600150008
0005001600bb0003001500080003001400fe00030013001200140005001300fe000300120014
00030011001000fa0005001100fe0003001000fa0003000f00fe0003000d00fe0003000b0000
00230005000a00000023000500090008000e00050009009600030008000e0003000600050017
000500050017000300040003002600050004007d0003000300260003000200fe00030001007d
000300000023000300010118858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d00> 2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d00>
] def
/f-1-0 currentdict end definefont pop
%%EndResource
...
/f-0-1 1 Tf
[<01>]TJ
/f-0-0 1 Tf
[(%r)3(dx,
%r)3(14)]TJ %r)3(14 #c)]TJ
/f-0-1 1 Tf
0 -1.25 Td
<01>Tj
...
/f-0-1 1 Tf
[<01>]TJ
/f-0-0 1 Tf
[(%r)3(si,
%r15)]TJ %r15 #)3(n)]TJ
/f-0-1 1 Tf
0 -1.25 Td
<01>Tj
...
/f-0-1 1 Tf
[<01>]TJ
/f-0-0 1 Tf
[(%r)3(di,
%r)3(bx)]TJ %r)3(bx #v)]TJ
/f-0-1 1 Tf
0 -1.25 Td
<01>Tj
...
/f-0-1 1 Tf
[<01>]TJ
/f-0-0 1 Tf
[($1)3(,
%r12)3(d)]TJ %r12)3(d #i)]TJ
/f-0-1 1 Tf
0 -1.25 Td
<01>Tj
...
[<01>]TJ
/f-1-0 1 Tf
[()3(.LBB0_7)]TJ
/f-0-0 1 Tf
0 -1.25 Td
[(# %loo)3(p.body)3(.cont)]TJ
/f-0-1 1 Tf
0 -1.25 Td
<01>Tj
...
[<01>]TJ
/f-0-0 1 Tf
[($8)3(, %rsp)]TJ
0 -1.25 Td
[( pop)3(q)]TJ
/f-0-1 1 Tf
<01>Tj
/f-0-0 1 Tf
[(%rbx)]TJ
13.767156 18.75 Td
(isord)Tj
/f-1-0 1 Tf
...
/f-0-1 1 Tf
<01>Tj
/f-0-0 1 Tf
[(%rbx)]TJ
/f-0-1 1 Tf
0 -1.25 Td
<01>Tj
/f-0-0 1 Tf
[( pop)3(q)]TJ
/f-0-1 1 Tf
<01>Tj
/f-0-0 1 Tf
[(%r12)]TJ
/f-0-1 1 Tf
0 -1.25 Td
...
/f-1-1 1 Tf
[<01>]TJ
/f-1-0 1 Tf
[(%r14, )3(%rdi # c)]TJ
/f-1-1 1 Tf
0 -1.25 Td
<01>Tj
/f-1-0 1 Tf
[( movq)]TJ
/f-1-1 1 Tf
[<01>]TJ
/f-1-0 1 Tf
[(%rbx,
%rdi)]TJ %rsi # v)]TJ
/f-1-1 1 Tf
0 -1.25 Td
<01>Tj
...
/f-1-1 1 Tf
[<01>]TJ
/f-1-0 1 Tf
[(%r15,
)3(%rsi)]TJ )3(%rdx # n)]TJ
/f-1-1 1 Tf
0 -1.25 Td
<01>Tj
...
/f-1-1 1 Tf
[<01>]TJ
/f-1-0 1 Tf
[(%r12, )3(%rdx)]TJ [(%r14, )3(%rcx # c)]TJ
/f-1-1 1 Tf
0 -1.25 Td
<01>Tj
...
/f-1-1 1 Tf
[<01>]TJ
/f-1-0 1 Tf
[(%r14, )3(%rcx)]TJ [(%r12, )3(%r8 # i)]TJ
/f-1-1 1 Tf
0 -1.25 Td
<01>Tj
...
/f-1-1 1 Tf
<01>Tj
/f-1-0 1 Tf
[(isordascto)]TJ [(isordstub)]TJ
ET
Q Q
showpage
diff --git a/figures/isordx86-64/isordx86-64.png b/figures/isordx86-64/isordx86-64.png
index 5400131..3680716 100644
Binary files a/figures/isordx86-64/isordx86-64.png and b/figures/isordx86-64/isordx86-64.png differ
diff --git a/figures/isordx86-64/isordx86-64.svg b/figures/isordx86-64/isordx86-64.svg
index 927e11e..ada0100 100644
--- a/figures/isordx86-64/isordx86-64.svg
+++ b/figures/isordx86-64/isordx86-64.svg
...
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.0729879"
inkscape:cx="-54.47606"
inkscape:cy="823.78442" inkscape:cx="313.65484"
inkscape:cy="749.22626"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
...
id="flowPara5007"> pushq %r12
id="flowPara5009"> pushq %rbx
id="flowPara5011"> pushq %rax
id="flowPara5013"> movq %rdx,
%r14 %r14 #c
id="flowPara5015"> movq %rsi, %r15 %r15 #n
id="flowPara5017"> movq %rdi, %rbx %rbx #v
id="flowPara5019"> movl $1, %r12d %r12d #i
id="flowPara5021"> cmpq $1, %r15
id="flowPara5023"> jle .LBB0_1
id="flowPara5025">.LBB0_4: # %loop.body
id="flowPara5027"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"> cmpq $1001, %r12
id="flowPara5029" id="flowPara5031"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"> je .LBB0_7
id="flowPara5031"># %loop.body.cont
id="flowPara5033"> movq %rbx, %rdi
id="flowPara5035"> leaq 8(%rbx), %rbx
id="flowPara5037"> movq %rbx, %rsi
...
id="flowPara5065">.LBB0_6: # %exit
id="flowPara5101"> addq $8, %rsp
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier, Normal'"
id="flowPara5136" /> id="flowPara5136"> popq %rbx
id="flowRoot4207"
style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:15px;line-height:125%;letter-spacing:0px;word-spacing:0px">
...
y="126.55576"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.25px;line-height:125%;font-family:Courier;-inkscape-font-specification:'Courier, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start" />
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier"
id="flowPara3505"> popq %rbx
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier"
id="flowPara4160"> popq %r12
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Courier;-inkscape-font-specification:Courier"
id="flowPara4132"> popq %r14
...
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
id="flowPara4112">.LBB0_7: # %osr
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
id="flowPara3507"> movq %r14, %rdi # c
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
id="flowPara3427"> movq %rbx, %rdi %rsi # v
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
id="flowPara3509"> movq %r15, %rsi %rdx # n
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
id="flowPara3511"> movq %r12, %rdx %r14, %rcx # c
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
id="flowPara3513"> movq %r14, %rcx %r12, %r8 # i
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
id="flowPara3515"> addq $8, %rsp
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
...
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"
id="flowPara3523"> popq %r15
id="flowPara3525"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Courier;-inkscape-font-specification:'Courier Bold'"> jmp isordascto isordstub
diff --git a/osr-llvm.tex b/osr-llvm.tex
index 6774b41..5a7b7b7 100644
--- a/osr-llvm.tex
+++ b/osr-llvm.tex
...
\fi
%\subsection{Example}
In this section we discuss one possible embodiment of the OSR approach of \mysection\ref{se:overview} in LLVM. Our discussion is based on a simple running example that illustrates a profile-driven optimization scenario. We start from a simple base function ({\tt isord}) that checks whether an array of numbers is ordered according to some criterion specified by a comparator (see \myfigure\ref{fi:isord-example}). Our goal is to instrument {\tt isord} so that, whenever the number of loop iterations exceeds a certain threshold, control is dynamically diverted to a faster version generated on-the-fly on the fly by inlining the comparator.
The IR code shown in this section\footnote{Virtual register names and labels in the LLVM-produced IR code shown in this paper have been refactored to make the code more readable.} has been generated with \clang\ and instrumented with \osrkit, a library we prototyped to help VM builders deploy OSR in LLVM. \osrkit\ provides a number of useful abstractions that include open and resolved OSR instrumentation of IR base functions without breaking the SSA form, liveness analysis, generation of OSR continuation functions, and mapping of LLVM values between different versions of a program along with compensation code generation\footnote{The accompanying artifact allows the interested reader to get acquainted with \osrkit\ and repeat the sample scenario described in this section.}.