mxcad 1.0.55 → 1.0.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mxcad.es.js CHANGED
@@ -1,12 +1,12 @@
1
- import VD, { MxFun as m, MrxDbgUiPrPoint as R, MrxDbgUtils as ND, store as rD, loadCoreCode as KD, MxPaintBrush as P, MrxDbgUiPrBaseReturn as h, MxDbCircleShape as sD, MxDbLine as z, MxDbPolyline as zD, MxDbCircleArc as N, Mx3PointArc as HD, MxDbEllipseShape as _D } from "mxdraw";
2
- function nD(B) {
3
- return btoa(unescape(encodeURIComponent(B)));
1
+ import _D, { MxFun as d, MrxDbgUiPrPoint as M, MxCursorType as qD, MrxDbgUtils as $D, store as oD, loadCoreCode as JD, MxPaintBrush as L, MrxDbgUiPrBaseReturn as g, MxDbCircleShape as aD, MxDbLine as $, MxDbPolyline as QD, MxDbCircleArc as _, Mx3PointArc as ZD, MxDbEllipseShape as YD, McEdGetPointWorldDrawObject as XD, MxDbEllipse as DC } from "mxdraw";
2
+ function uD(E) {
3
+ return btoa(unescape(encodeURIComponent(E)));
4
4
  }
5
- function oD(B) {
6
- return decodeURIComponent(escape(atob(B)));
5
+ function lD(E) {
6
+ return decodeURIComponent(escape(atob(E)));
7
7
  }
8
- async function aD({
9
- blob: B,
8
+ async function cD({
9
+ blob: E,
10
10
  filename: D = "",
11
11
  types: C = [
12
12
  {
@@ -27,7 +27,7 @@ async function aD({
27
27
  suggestedName: D,
28
28
  types: C
29
29
  })).createWritable();
30
- await A.write(B), await A.close();
30
+ await A.write(E), await A.close();
31
31
  return;
32
32
  } catch (F) {
33
33
  if (F?.name === "AbortError")
@@ -37,71 +37,228 @@ async function aD({
37
37
  else
38
38
  console.warn("\u975E\u7528\u6237\u4EA4\u4E92 \u65E0\u6CD5\u8C03\u7528showSaveFilePicker \u5DF2\u9009\u62E9\u517C\u5BB9\u65B9\u6848");
39
39
  if (window.navigator?.msSaveOrOpenBlob) {
40
- window.navigator.msSaveOrOpenBlob(B, D);
40
+ window.navigator.msSaveOrOpenBlob(E, D);
41
41
  return;
42
42
  }
43
- const E = document.createElement("a");
44
- E.href = window.URL.createObjectURL(B), E.download = D, E.style.display = "none", document.body.appendChild(E), E.click(), document.body.removeChild(E), typeof window.URL.revokeObjectURL == "function" ? window.URL.revokeObjectURL(E.href) : typeof window.webkitURL < "u" && typeof window.webkitURL.revokeObjectURL == "function" ? window.webkitURL.revokeObjectURL(E.href) : window.URL.revokeObjectURL(E.href);
45
- } catch (E) {
46
- console.error(E.name, E.message);
43
+ const B = document.createElement("a");
44
+ B.href = window.URL.createObjectURL(E), B.download = D, B.style.display = "none", document.body.appendChild(B), B.click(), document.body.removeChild(B), typeof window.URL.revokeObjectURL == "function" ? window.URL.revokeObjectURL(B.href) : typeof window.webkitURL < "u" && typeof window.webkitURL.revokeObjectURL == "function" ? window.webkitURL.revokeObjectURL(B.href) : window.URL.revokeObjectURL(B.href);
45
+ } catch (B) {
46
+ console.error(B.name, B.message);
47
47
  }
48
48
  }
49
- function uD(B, D) {
49
+ function mD(E, D) {
50
50
  const C = document.createElement("a");
51
- C.href = window.URL.createObjectURL(B), C.download = D, C.click();
51
+ C.href = window.URL.createObjectURL(E), C.download = D, C.click();
52
52
  }
53
- const V = {
54
- b64Encode: nD,
55
- b64Decode: oD,
56
- saveAsFileDialog: aD,
57
- downloadFile: uD
53
+ function pD(E, D) {
54
+ fetch(E).then((C) => C.blob()).then((C) => {
55
+ const B = document.createElement("a");
56
+ B.href = window.URL.createObjectURL(C), B.download = D, B.click();
57
+ });
58
+ }
59
+ const H = {
60
+ b64Encode: uD,
61
+ b64Decode: lD,
62
+ saveAsFileDialog: cD,
63
+ downloadFile: mD,
64
+ downloadFileFromUrl: pD
58
65
  };
59
- var Q;
60
- (function(B) {
61
- B[B.kNormal = 0] = "kNormal", B[B.kRect = 1] = "kRect", B[B.kCross = 2] = "kCross";
62
- })(Q || (Q = {}));
63
- class qD {
66
+ class p {
67
+ imp;
68
+ constructor(D, C, B) {
69
+ this.imp = new i.mxcadassemblyimp.MdGePoint3d(), D instanceof Object ? (this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z) : (this.imp.x = D || 0, this.imp.y = C || 0, this.imp.z = B || 0);
70
+ }
71
+ copy(D) {
72
+ return this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z, this;
73
+ }
74
+ clone() {
75
+ return new p(this.imp);
76
+ }
77
+ get x() {
78
+ return this.imp.x;
79
+ }
80
+ set x(D) {
81
+ this.imp.x = D;
82
+ }
83
+ get y() {
84
+ return this.imp.y;
85
+ }
86
+ set y(D) {
87
+ this.imp.y = D;
88
+ }
89
+ get z() {
90
+ return this.imp.z;
91
+ }
92
+ set z(D) {
93
+ this.imp.z = D;
94
+ }
95
+ }
96
+ class G {
97
+ imp;
98
+ constructor(D, C, B) {
99
+ this.imp = new i.mxcadassemblyimp.MdGeVector3d(), D instanceof Object ? (this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z) : (this.imp.x = D || 0, this.imp.y = C || 0, this.imp.z = B || 0);
100
+ }
101
+ copy(D) {
102
+ return this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z, this;
103
+ }
104
+ clone() {
105
+ return new G(this.imp);
106
+ }
107
+ rotateBy(D, C) {
108
+ return this.imp.rotateBy(D, C), this;
109
+ }
110
+ negate() {
111
+ return this.imp.negate(), this;
112
+ }
113
+ perpVector() {
114
+ return this.imp.perpVector(), this;
115
+ }
116
+ angleTo1(D) {
117
+ return this.imp.angleTo(D.imp);
118
+ }
119
+ angleTo2(D, C) {
120
+ return this.imp.angleTo(D.imp, C.imp);
121
+ }
122
+ normalize() {
123
+ return this.imp.normalize(), this;
124
+ }
125
+ length() {
126
+ return this.imp.length();
127
+ }
128
+ isUnitLength() {
129
+ return this.imp.isUnitLength();
130
+ }
131
+ isZeroLength() {
132
+ return this.imp.isZeroLength();
133
+ }
134
+ dotProduct(D) {
135
+ return this.imp.dotProduct(D.imp);
136
+ }
137
+ crossProduct(D) {
138
+ let C = new G();
139
+ return C.imp = this.imp.crossProduct(D.imp), C;
140
+ }
141
+ isEqualTo(D) {
142
+ return this.imp.isEqualTo(D.imp);
143
+ }
144
+ get x() {
145
+ return this.imp.x;
146
+ }
147
+ set x(D) {
148
+ this.imp.x = D;
149
+ }
150
+ get y() {
151
+ return this.imp.y;
152
+ }
153
+ set y(D) {
154
+ this.imp.y = D;
155
+ }
156
+ get z() {
157
+ return this.imp.z;
158
+ }
159
+ set z(D) {
160
+ this.imp.z = D;
161
+ }
162
+ }
163
+ class Z {
164
+ imp;
165
+ constructor(D) {
166
+ this.imp = i.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
167
+ }
168
+ copy(D) {
169
+ return this.imp.copy(D.imp), this;
170
+ }
171
+ clone() {
172
+ return new Z(this.imp);
173
+ }
174
+ setToIdentity() {
175
+ return this.imp.setToIdentity(), this;
176
+ }
177
+ preMultBy(D) {
178
+ return this.imp.preMultBy(D.imp), this;
179
+ }
180
+ postMultBy(D) {
181
+ return this.imp.postMultBy(D.imp), this;
182
+ }
183
+ setToProduct(D, C) {
184
+ return this.imp.setToProduct(D.imp, C.imp), this;
185
+ }
186
+ invert() {
187
+ return this.imp.invert(), this;
188
+ }
189
+ isSingular() {
190
+ return this.imp.isSingular();
191
+ }
192
+ transposeIt() {
193
+ return this.imp.transposeIt(), this;
194
+ }
195
+ isEqualTo(D) {
196
+ return this.imp.isEqualTo(D.imp);
197
+ }
198
+ det() {
199
+ return this.imp.det();
200
+ }
201
+ setCoordSystem(D, C, B, F) {
202
+ return this.imp.setCoordSystem(D.imp, C.imp, B.imp, F.imp), this;
203
+ }
204
+ setToTranslation(D) {
205
+ return this.imp.setCoordSystem(D.imp), this;
206
+ }
207
+ setToRotation(D, C, B) {
208
+ return this.imp.setToRotation(D, C.imp, B.imp), this;
209
+ }
210
+ setToScaling(D, C) {
211
+ return this.imp.setToScaling(D, C.imp), this;
212
+ }
213
+ scale() {
214
+ return this.imp.scale();
215
+ }
216
+ getData(D, C) {
217
+ return this.imp.getData(D, C);
218
+ }
219
+ }
220
+ class CC {
64
221
  z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
65
222
  encodeToGb2312(D) {
66
- for (var C = "", E = 0; E < D.length; E++) {
67
- var F = D.charAt(E), A = D.charCodeAt(E);
223
+ for (var C = "", B = 0; B < D.length; B++) {
224
+ var F = D.charAt(B), A = D.charCodeAt(B);
68
225
  if (F == " ")
69
226
  C += "+";
70
227
  else if (A >= 19968 && A <= 40869) {
71
- let e = A - 19968;
72
- C += "%" + this.z.substr(e * 4, 2) + "%" + this.z.substr(e * 4 + 2, 2);
228
+ let t = A - 19968;
229
+ C += "%" + this.z.substr(t * 4, 2) + "%" + this.z.substr(t * 4 + 2, 2);
73
230
  } else
74
- C += "%" + D.charCodeAt(E).toString(16);
231
+ C += "%" + D.charCodeAt(B).toString(16);
75
232
  }
76
233
  return C;
77
234
  }
78
235
  decodeFromGb2312(D) {
79
- for (var C = "", E = 0; E < D.length; E++) {
80
- var F = D.charAt(E);
236
+ for (var C = "", B = 0; B < D.length; B++) {
237
+ var F = D.charAt(B);
81
238
  if (F == "+")
82
239
  C += " ";
83
240
  else if (F != "%")
84
241
  C += F;
85
242
  else {
86
- E++;
87
- var A = D.charAt(E);
243
+ B++;
244
+ var A = D.charAt(B);
88
245
  if (isNaN(parseInt(A)))
89
246
  try {
90
- var e = D.substr(E, 2) + D.substr(E + 3, 2);
91
- E = E + 4;
92
- for (var t = -1; (t = this.z.indexOf(e, t + 1)) != -1; )
93
- if (t % 4 == 0) {
94
- C += String.fromCharCode(t / 4 + 19968);
247
+ var t = D.substr(B, 2) + D.substr(B + 3, 2);
248
+ B = B + 4;
249
+ for (var e = -1; (e = this.z.indexOf(t, e + 1)) != -1; )
250
+ if (e % 4 == 0) {
251
+ C += String.fromCharCode(e / 4 + 19968);
95
252
  break;
96
253
  }
97
254
  } catch {
98
255
  }
99
256
  else {
100
- E++;
257
+ B++;
101
258
  try {
102
- C += decodeURIComponent(F + A + D.charAt(E));
259
+ C += decodeURIComponent(F + A + D.charAt(B));
103
260
  } catch {
104
- console.log("decodeURIComponent error"), console.log(F + A + D.charAt(E));
261
+ console.log("decodeURIComponent error"), console.log(F + A + D.charAt(B));
105
262
  }
106
263
  }
107
264
  }
@@ -109,14 +266,14 @@ class qD {
109
266
  return C;
110
267
  }
111
268
  }
112
- let w = new qD();
113
- const $D = new FinalizationRegistry((B) => {
114
- s.App.DestroyObject(B);
115
- }), XD = {};
116
- class L {
269
+ let y = new CC();
270
+ const BC = new FinalizationRegistry((E) => {
271
+ i.App.DestroyObject(E);
272
+ }), EC = {};
273
+ class v {
117
274
  imp = 0;
118
275
  constructor(D) {
119
- this.imp = D, this.imp && $D.register(this, D, XD);
276
+ this.imp = D, this.imp && BC.register(this, D, EC);
120
277
  }
121
278
  getImp() {
122
279
  return this.imp;
@@ -132,15 +289,15 @@ class L {
132
289
  }
133
290
  getJson() {
134
291
  let D = this.imp.getJson();
135
- return w.decodeFromGb2312(D);
292
+ return y.decodeFromGb2312(D);
136
293
  }
137
294
  setJson(D) {
138
- let C = w.encodeToGb2312(D);
295
+ let C = y.encodeToGb2312(D);
139
296
  return this.imp.setJson(C);
140
297
  }
141
298
  }
142
- var y = /* @__PURE__ */ ((B) => (B[B.kMxCAD = 0] = "kMxCAD", B[B.kMxDraw = 1] = "kMxDraw", B[B.kInvalid = 2] = "kInvalid", B))(y || {});
143
- class x {
299
+ var x = /* @__PURE__ */ ((E) => (E[E.kMxCAD = 0] = "kMxCAD", E[E.kMxDraw = 1] = "kMxDraw", E[E.kInvalid = 2] = "kInvalid", E))(x || {});
300
+ class f {
144
301
  id;
145
302
  type;
146
303
  constructor(D, C) {
@@ -150,26 +307,26 @@ class x {
150
307
  return this.type != 2 && this.id != 0;
151
308
  }
152
309
  erase() {
153
- this.type == 1 ? m.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && ED.eraseEntity(this.id);
310
+ this.type == 1 ? d.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && eD.eraseEntity(this.id);
154
311
  }
155
312
  getMcDbObject() {
156
- return this.type == 0 ? s.App.ObjectIdToObject(this.id) : null;
313
+ return this.type == 0 ? i.App.ObjectIdToObject(this.id) : null;
157
314
  }
158
315
  getObjectName() {
159
316
  if (this.type == 0)
160
- return s.App.getImp().ObjectIdToObjectName(this.id);
317
+ return i.App.getImp().ObjectIdToObjectName(this.id);
161
318
  if (this.type == 1) {
162
- let D = m.getCurrentDraw().getMxEntity(this.id);
319
+ let D = d.getCurrentDraw().getMxEntity(this.id);
163
320
  if (D)
164
321
  return D.getTypeName();
165
322
  }
166
323
  return "";
167
324
  }
168
325
  getMxDbEntity() {
169
- return this.type == 1 ? m.getCurrentDraw().getMxEntity(this.id) : null;
326
+ return this.type == 1 ? d.getCurrentDraw().getMxEntity(this.id) : null;
170
327
  }
171
328
  }
172
- class v extends L {
329
+ class S extends v {
173
330
  constructor(D) {
174
331
  super(D);
175
332
  }
@@ -181,31 +338,299 @@ class v extends L {
181
338
  }
182
339
  Clone() {
183
340
  let D = this.imp.Clone();
184
- return s.App.CreateCloneObject(D);
341
+ return i.App.CreateCloneObject(D);
185
342
  }
186
343
  GetHandle() {
187
344
  return this.imp.GetHandle();
188
345
  }
189
346
  GetDatabase() {
190
- return new AD(this.imp.GetDatabase());
347
+ return new ED(this.imp.GetDatabase());
191
348
  }
192
349
  GetOwnerID() {
193
350
  return this.imp.GetOwnerID();
194
351
  }
195
352
  }
196
- class I extends v {
353
+ var BD;
354
+ ((E) => {
355
+ ((D) => {
356
+ D[D.kTextLeft = 0] = "kTextLeft", D[D.kTextCenter = 1] = "kTextCenter", D[D.kTextRight = 2] = "kTextRight", D[D.kTextAlign = 3] = "kTextAlign", D[D.kTextMid = 4] = "kTextMid", D[D.kTextFit = 5] = "kTextFit";
357
+ })(E.TextHorzMode || (E.TextHorzMode = {})), ((D) => {
358
+ D[D.kTextBase = 0] = "kTextBase", D[D.kTextBottom = 1] = "kTextBottom", D[D.kTextVertMid = 2] = "kTextVertMid", D[D.kTextTop = 3] = "kTextTop";
359
+ })(E.TextVertMode || (E.TextVertMode = {})), ((D) => {
360
+ D[D.kTopLeft = 1] = "kTopLeft", D[D.kTopCenter = 2] = "kTopCenter", D[D.kTopRight = 3] = "kTopRight", D[D.kMiddleLeft = 4] = "kMiddleLeft", D[D.kMiddleCenter = 5] = "kMiddleCenter", D[D.kMiddleRight = 6] = "kMiddleRight", D[D.kBottomLeft = 7] = "kBottomLeft", D[D.kBottomCenter = 8] = "kBottomCenter", D[D.kBottomRight = 9] = "kBottomRight", D[D.kBaseLeft = 10] = "kBaseLeft", D[D.kBaseCenter = 11] = "kBaseCenter", D[D.kBaseRight = 12] = "kBaseRight", D[D.kBaseAlign = 13] = "kBaseAlign", D[D.kBottomAlign = 14] = "kBottomAlign", D[D.kMiddleAlign = 15] = "kMiddleAlign", D[D.kTopAlign = 16] = "kTopAlign", D[D.kBaseFit = 17] = "kBaseFit", D[D.kBottomFit = 18] = "kBottomFit", D[D.kMiddleFit = 19] = "kMiddleFit", D[D.kTopFit = 20] = "kTopFit", D[D.kBaseMid = 21] = "kBaseMid", D[D.kBottomMid = 22] = "kBottomMid", D[D.kMiddleMid = 23] = "kMiddleMid", D[D.kTopMid = 24] = "kTopMid";
361
+ })(E.AttachmentPoint || (E.AttachmentPoint = {})), ((D) => {
362
+ D[D.kLnWt000 = 0] = "kLnWt000", D[D.kLnWt005 = 5] = "kLnWt005", D[D.kLnWt009 = 9] = "kLnWt009", D[D.kLnWt013 = 13] = "kLnWt013", D[D.kLnWt015 = 15] = "kLnWt015", D[D.kLnWt018 = 18] = "kLnWt018", D[D.kLnWt020 = 20] = "kLnWt020", D[D.kLnWt025 = 25] = "kLnWt025", D[D.kLnWt030 = 30] = "kLnWt030", D[D.kLnWt035 = 35] = "kLnWt035", D[D.kLnWt040 = 40] = "kLnWt040", D[D.kLnWt050 = 50] = "kLnWt050", D[D.kLnWt053 = 53] = "kLnWt053", D[D.kLnWt060 = 60] = "kLnWt060", D[D.kLnWt070 = 70] = "kLnWt070", D[D.kLnWt080 = 80] = "kLnWt080", D[D.kLnWt090 = 90] = "kLnWt090", D[D.kLnWt100 = 100] = "kLnWt100", D[D.kLnWt106 = 106] = "kLnWt106", D[D.kLnWt120 = 120] = "kLnWt120", D[D.kLnWt140 = 140] = "kLnWt140", D[D.kLnWt158 = 158] = "kLnWt158", D[D.kLnWt200 = 200] = "kLnWt200", D[D.kLnWt211 = 211] = "kLnWt211", D[D.kLnWtByLayer = -1] = "kLnWtByLayer", D[D.kLnWtByBlock = -2] = "kLnWtByBlock", D[D.kLnWtByLwDefault = -3] = "kLnWtByLwDefault";
363
+ })(E.LineWeight || (E.LineWeight = {}));
364
+ })(BD || (BD = {}));
365
+ class O {
366
+ imp;
367
+ constructor(D, C, B) {
368
+ this.imp = new i.mxcadassemblyimp.MdCmColor(), D instanceof Object ? (this.imp.red = D.red, this.imp.green = D.green, this.imp.blue = D.blue, this.imp.method = D.method, this.imp.n = D.n, this.imp.colorIndex = D.colorIndex) : D && C && B && this.imp.setRGB(D, C, B);
369
+ }
370
+ getImp() {
371
+ return this.imp;
372
+ }
373
+ copy(D) {
374
+ return this.imp.red = D.imp.red, this.imp.green = D.imp.green, this.imp.blue = D.imp.blue, this.imp.method = D.imp.method, this.imp.n = D.imp.n, this.imp.colorIndex = D.imp.colorIndex, this;
375
+ }
376
+ clone() {
377
+ return new O(this.imp);
378
+ }
379
+ setColorIndex(D) {
380
+ this.imp.setColorIndex(D);
381
+ }
382
+ setRGB(D, C, B) {
383
+ this.imp.setRGB(D, C, B);
384
+ }
385
+ get red() {
386
+ return this.imp.red;
387
+ }
388
+ set red(D) {
389
+ this.imp.red = D;
390
+ }
391
+ get green() {
392
+ return this.imp.green;
393
+ }
394
+ set green(D) {
395
+ this.imp.green = D;
396
+ }
397
+ get blue() {
398
+ return this.imp.blue;
399
+ }
400
+ set blue(D) {
401
+ this.imp.blue = D;
402
+ }
403
+ get n() {
404
+ return this.imp.n;
405
+ }
406
+ set n(D) {
407
+ this.imp.n = D;
408
+ }
409
+ get method() {
410
+ return this.imp.method;
411
+ }
412
+ set method(D) {
413
+ this.imp.method = D;
414
+ }
415
+ get colorIndex() {
416
+ return this.imp.colorIndex;
417
+ }
418
+ set colorIndex(D) {
419
+ this.imp.colorIndex = D;
420
+ }
421
+ }
422
+ class FC extends S {
423
+ constructor(D) {
424
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLayerTableRecord());
425
+ }
426
+ get name() {
427
+ return this.imp.getName();
428
+ }
429
+ set name(D) {
430
+ this.imp.setName(D);
431
+ }
432
+ get isFrozen() {
433
+ return this.imp.isFrozen();
434
+ }
435
+ set isFrozen(D) {
436
+ this.imp.setIsFrozen(D);
437
+ }
438
+ get isOff() {
439
+ return this.imp.isOff();
440
+ }
441
+ set isOff(D) {
442
+ this.imp.setIsOff(D);
443
+ }
444
+ get isLocked() {
445
+ return this.imp.isLocked();
446
+ }
447
+ set isLocked(D) {
448
+ this.imp.setIsLocked(D);
449
+ }
450
+ get color() {
451
+ return new O(this.imp.color());
452
+ }
453
+ set color(D) {
454
+ this.imp.setColor(D.getImp());
455
+ }
456
+ get linetypeObjectId() {
457
+ return new f(this.imp.linetypeObjectId(), x.kMxCAD);
458
+ }
459
+ set linetypeObjectId(D) {
460
+ this.imp.setLinetypeObjectId(D.id);
461
+ }
462
+ get lineWeight() {
463
+ return this.imp.lineWeight();
464
+ }
465
+ set lineWeight(D) {
466
+ this.imp.setLineWeight(D);
467
+ }
468
+ }
469
+ class dD extends S {
470
+ constructor(D) {
471
+ super(D);
472
+ }
473
+ }
474
+ class hD extends S {
475
+ constructor(D) {
476
+ super(D);
477
+ }
478
+ }
479
+ class wD extends S {
480
+ constructor(D) {
481
+ super(D);
482
+ }
483
+ }
484
+ class ED extends v {
485
+ constructor(D) {
486
+ super(D);
487
+ }
488
+ GetLayerTable() {
489
+ return new dD(this.imp.GetLayerTable());
490
+ }
491
+ GetLinetypeTable() {
492
+ return new hD(this.imp.GetLinetypeTable());
493
+ }
494
+ GetTextStyleTable() {
495
+ return new wD(this.imp.GetTextStyleTable());
496
+ }
497
+ GetBlockTable() {
498
+ return new xD(this.imp.GetBlockTable());
499
+ }
500
+ CurrentSpace() {
501
+ return new Y(this.imp.CurrentSpace());
502
+ }
503
+ GetCurrentlyLineTypeScale() {
504
+ return this.imp.GetCurrentlyLineTypeScale();
505
+ }
506
+ SetCurrentlyLineTypeScale(D) {
507
+ return this.imp.SetCurrentlyLineTypeScale(D);
508
+ }
509
+ GetCurrentlyLineTypeName() {
510
+ let D = this.imp.GetCurrentlyLineTypeName();
511
+ return y.decodeFromGb2312(D);
512
+ }
513
+ SetCurrentlyLineTypeName(D) {
514
+ let C = y.encodeToGb2312(D);
515
+ this.imp.SetCurrentlyLineTypeName(C);
516
+ }
517
+ GetCurrentlyLayerName() {
518
+ let D = this.imp.GetCurrentlyLayerName();
519
+ return y.decodeFromGb2312(D);
520
+ }
521
+ SetCurrentlyLayerName(D) {
522
+ let C = y.encodeToGb2312(D);
523
+ this.imp.SetCurrentlyLayerName(C);
524
+ }
525
+ GetCurrentlyTrueColor() {
526
+ return new O(this.imp.GetCurrentlyTrueColor());
527
+ }
528
+ SetCurrentlyTrueColor(D) {
529
+ return this.imp.SetCurrentlyTrueColor(D.getImp());
530
+ }
531
+ GetCurrentlyColorIndex() {
532
+ return this.imp.GetCurrentlyColorIndex();
533
+ }
534
+ SetCurrentlyColorIndex(D) {
535
+ return this.imp.SetCurrentlyColorIndex(D);
536
+ }
537
+ GetCurrentlyTextStyleName() {
538
+ let D = this.imp.GetCurrentlyTextStyleName();
539
+ return y.decodeFromGb2312(D);
540
+ }
541
+ SetCurrentlyTextStyle(D) {
542
+ let C = y.encodeToGb2312(D);
543
+ this.imp.SetCurrentlyTextStyle(C);
544
+ }
545
+ }
546
+ class gD extends v {
547
+ constructor(D) {
548
+ super(D);
549
+ }
550
+ start(D = !0, C = !0) {
551
+ this.imp.start(D, C);
552
+ }
553
+ done() {
554
+ return this.imp.done();
555
+ }
556
+ getEntityId() {
557
+ return new f(this.imp.getEntityId(), x.kMxCAD);
558
+ }
559
+ step(D = !0, C = !0) {
560
+ return this.imp.step(D, C);
561
+ }
562
+ }
563
+ class Y extends S {
564
+ constructor(D) {
565
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTableRecord());
566
+ }
567
+ appendAcDbEntity(D) {
568
+ return new f(
569
+ this.imp.appendAcDbEntity(D.getImp()),
570
+ x.kMxCAD
571
+ );
572
+ }
573
+ newIterator(D = !0, C = !0) {
574
+ let B = this.imp.newIterator(D, C);
575
+ return new gD(B);
576
+ }
577
+ get origin() {
578
+ return new p(this.imp.origin());
579
+ }
580
+ set origin(D) {
581
+ this.imp.setOrigin(D.imp);
582
+ }
583
+ }
584
+ class yD extends v {
585
+ constructor(D) {
586
+ super(D);
587
+ }
588
+ start(D = !0, C = !0) {
589
+ this.imp.start(D, C);
590
+ }
591
+ done() {
592
+ return this.imp.done();
593
+ }
594
+ getRecord() {
595
+ let D = this.imp.getRecord();
596
+ return new Y(D);
597
+ }
598
+ step(D = !0, C = !0) {
599
+ this.imp.start(D, C);
600
+ }
601
+ }
602
+ class xD extends S {
603
+ constructor(D) {
604
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTable());
605
+ }
606
+ getAt(D) {
607
+ let C = this.getAt(D);
608
+ return C && new Y(C);
609
+ }
610
+ has(D) {
611
+ return this.imp.has(D);
612
+ }
613
+ newIterator(D = !0, C = !0) {
614
+ let B = this.imp.newIterator(D, C);
615
+ return new yD(B);
616
+ }
617
+ add(D) {
618
+ return this.imp.add(D.getImp());
619
+ }
620
+ }
621
+ class z extends S {
197
622
  constructor(D) {
198
623
  super(D);
199
624
  }
200
625
  explode() {
201
626
  let D = this.imp.explode();
202
- return new U(D);
627
+ return new K(D);
203
628
  }
204
629
  get trueColor() {
205
- return this.imp.TrueColor();
630
+ return new O(this.imp.TrueColor());
206
631
  }
207
632
  set trueColor(D) {
208
- this.imp.SetTrueColor(D);
633
+ this.imp.SetTrueColor(D.getImp());
209
634
  }
210
635
  get colorIndex() {
211
636
  return this.imp.ColorIndex();
@@ -247,123 +672,123 @@ class I extends v {
247
672
  this.imp.Highlight(D);
248
673
  }
249
674
  Move(D, C) {
250
- return this.imp.Move(D, C);
675
+ return this.imp.Move(D.imp, C.imp);
251
676
  }
252
677
  Rotate(D, C) {
253
- return this.imp.Rotate(D, C);
678
+ return this.imp.Rotate(D.imp, C);
254
679
  }
255
680
  Mirror(D, C) {
256
- return this.imp.Mirror(D, C);
681
+ return this.imp.Mirror(D.imp, C.imp);
257
682
  }
258
683
  ScaleEntity(D, C) {
259
- return this.imp.ScaleEntity(D, C);
684
+ return this.imp.ScaleEntity(D.imp, C);
260
685
  }
261
686
  TransformBy(D) {
262
- return this.imp.TransformBy(D);
687
+ return this.imp.TransformBy(D.imp);
263
688
  }
264
689
  GetBoundingBox() {
265
690
  let D = this.imp.GetBoundingBox();
266
691
  if (D) {
267
- let C = { minPt: D.AtPoint(0).val, maxPt: D.AtPoint(1).val, ret: 0 };
268
- return s.App.DestroyObject(D), C;
692
+ let C = { minPt: new p(D.AtPoint(0).val), maxPt: new p(D.AtPoint(1).val), ret: 0 };
693
+ return i.App.DestroyObject(D), C;
269
694
  } else
270
- return { minPt: s.NewMcGePoint3d(), maxPt: s.NewMcGePoint3d(), ret: 1 };
695
+ return { minPt: new p(), maxPt: new p(), ret: 1 };
271
696
  }
272
697
  }
273
- class q extends I {
698
+ class N extends z {
274
699
  constructor(D) {
275
700
  super(D);
276
701
  }
277
702
  getStartParam() {
278
- return { val: this.imp.getStartParam(), ret: s.getCallResult() };
703
+ return { val: this.imp.getStartParam(), ret: i.getCallResult() };
279
704
  }
280
705
  getEndParam() {
281
- return { val: this.imp.getEndParam(), ret: s.getCallResult() };
706
+ return { val: this.imp.getEndParam(), ret: i.getCallResult() };
282
707
  }
283
708
  getDistAtParam(D) {
284
- return { val: this.imp.getDistAtParam(D), ret: s.getCallResult() };
709
+ return { val: this.imp.getDistAtParam(D), ret: i.getCallResult() };
285
710
  }
286
711
  getParamAtDist(D) {
287
- return { val: this.imp.getParamAtDist(D), ret: s.getCallResult() };
712
+ return { val: this.imp.getParamAtDist(D), ret: i.getCallResult() };
288
713
  }
289
714
  getDistAtPoint(D) {
290
- return { val: this.imp.getDistAtPoint(D), ret: s.getCallResult() };
715
+ return { val: this.imp.getDistAtPoint(D.imp), ret: i.getCallResult() };
291
716
  }
292
717
  getPointAtDist(D) {
293
- return { val: this.imp.getPointAtDist(D), ret: s.getCallResult() };
718
+ return { val: new p(this.imp.getPointAtDist(D)), ret: i.getCallResult() };
294
719
  }
295
720
  getStartPoint() {
296
- return { val: this.imp.getStartPoint(), ret: s.getCallResult() };
721
+ return { val: new p(this.imp.getStartPoint()), ret: i.getCallResult() };
297
722
  }
298
723
  getEndPoint() {
299
- return { val: this.imp.getStartPoint(), ret: s.getCallResult() };
724
+ return { val: new p(this.imp.getStartPoint()), ret: i.getCallResult() };
300
725
  }
301
726
  getPointAtParam(D) {
302
- return { val: this.imp.getPointAtParam(D), ret: s.getCallResult() };
727
+ return { val: new p(this.imp.getPointAtParam(D)), ret: i.getCallResult() };
303
728
  }
304
729
  getParamAtPoint(D) {
305
- return { val: this.imp.getParamAtPoint(D), ret: s.getCallResult() };
730
+ return { val: this.imp.getParamAtPoint(D.imp), ret: i.getCallResult() };
306
731
  }
307
732
  getFirstDeriv(D) {
308
- return { val: this.imp.getFirstDeriv(D), ret: s.getCallResult() };
733
+ return { val: new G(this.imp.getFirstDeriv(D)), ret: i.getCallResult() };
309
734
  }
310
735
  getFirstDerivEx(D) {
311
- return { val: this.imp.getFirstDerivEx(D), ret: s.getCallResult() };
736
+ return { val: new G(this.imp.getFirstDerivEx(D.imp)), ret: i.getCallResult() };
312
737
  }
313
738
  getClosestPointTo(D, C) {
314
- return { val: this.imp.getClosestPointTo(D, C), ret: s.getCallResult() };
739
+ return { val: new p(this.imp.getClosestPointTo(D.imp, C)), ret: i.getCallResult() };
315
740
  }
316
741
  offsetCurves(D, C) {
317
- let E = this.imp.offsetCurves(D, C);
318
- return new U(E);
742
+ let B = this.imp.offsetCurves(D, C.imp);
743
+ return new K(B);
319
744
  }
320
745
  splitCurves(D) {
321
746
  let C = this.imp.splitCurves(D);
322
- return new U(C);
747
+ return new K(C);
323
748
  }
324
749
  getArea() {
325
- return { val: this.imp.getArea(), ret: s.getCallResult() };
750
+ return { val: this.imp.getArea(), ret: i.getCallResult() };
326
751
  }
327
752
  getSamplePoints(D) {
328
753
  let C = this.imp.getSamplePoints(D);
329
- return new U(C);
754
+ return new K(C);
330
755
  }
331
756
  getLength() {
332
- return { val: this.imp.getLength(), ret: s.getCallResult() };
757
+ return { val: this.imp.getLength(), ret: i.getCallResult() };
333
758
  }
334
759
  }
335
- class H extends q {
760
+ class J extends N {
336
761
  constructor(D) {
337
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbLine());
762
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLine());
338
763
  }
339
764
  get startPoint() {
340
- return this.imp.startPoint();
765
+ return new p(this.imp.startPoint());
341
766
  }
342
767
  set startPoint(D) {
343
- this.imp.setStartPoint(D);
768
+ this.imp.setStartPoint(D.imp);
344
769
  }
345
770
  get endPoint() {
346
- return this.imp.endPoint();
771
+ return new p(this.imp.endPoint());
347
772
  }
348
773
  set endPoint(D) {
349
- this.imp.setEndPoint(D);
774
+ this.imp.setEndPoint(D.imp);
350
775
  }
351
776
  }
352
- class _ extends I {
777
+ class Q extends z {
353
778
  constructor(D) {
354
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbText());
779
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbText());
355
780
  }
356
781
  get position() {
357
- return this.imp.position();
782
+ return new p(this.imp.position());
358
783
  }
359
784
  set position(D) {
360
- this.imp.setPosition(D);
785
+ this.imp.setPosition(D.imp);
361
786
  }
362
787
  get alignmentPoint() {
363
- return this.imp.position();
788
+ return new p(this.imp.position());
364
789
  }
365
790
  set alignmentPoint(D) {
366
- this.imp.setAlignmentPoint(D);
791
+ this.imp.setAlignmentPoint(D.imp);
367
792
  }
368
793
  get oblique() {
369
794
  return this.imp.oblique();
@@ -390,10 +815,10 @@ class _ extends I {
390
815
  this.imp.setWidthFactor(D);
391
816
  }
392
817
  get textString() {
393
- return w.decodeFromGb2312(this.imp.textString());
818
+ return y.decodeFromGb2312(this.imp.textString());
394
819
  }
395
820
  set textString(D) {
396
- this.imp.setTextString(w.encodeToGb2312(D));
821
+ this.imp.setTextString(y.encodeToGb2312(D));
397
822
  }
398
823
  get horizontalMode() {
399
824
  return this.imp.horizontalMode();
@@ -408,15 +833,15 @@ class _ extends I {
408
833
  this.imp.setVerticalMode(D);
409
834
  }
410
835
  }
411
- class DD extends I {
836
+ class FD extends z {
412
837
  constructor(D) {
413
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbMText());
838
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbMText());
414
839
  }
415
840
  get location() {
416
- return this.imp.location();
841
+ return new p(this.imp.location());
417
842
  }
418
843
  set location(D) {
419
- this.imp.setLocation(D);
844
+ this.imp.setLocation(D.imp);
420
845
  }
421
846
  get rotation() {
422
847
  return this.imp.rotation();
@@ -443,24 +868,24 @@ class DD extends I {
443
868
  this.imp.setAttachment(D);
444
869
  }
445
870
  get contents() {
446
- return w.decodeFromGb2312(this.imp.contents());
871
+ return y.decodeFromGb2312(this.imp.contents());
447
872
  }
448
873
  set contents(D) {
449
- this.imp.setContents(w.encodeToGb2312(D));
874
+ this.imp.setContents(y.encodeToGb2312(D));
450
875
  }
451
876
  }
452
- class CD extends q {
877
+ class AD extends N {
453
878
  constructor(D) {
454
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbCircle());
879
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbCircle());
455
880
  }
456
- setCenter(D, C, E) {
457
- this.imp.setCenter(D, C, E);
881
+ setCenter(D, C, B) {
882
+ this.imp.setCenter(new p(D, C, B).imp);
458
883
  }
459
884
  get center() {
460
- return this.imp.center();
885
+ return new p(this.imp.center());
461
886
  }
462
887
  set center(D) {
463
- this.imp.setCenter(D);
888
+ this.imp.setCenter(D.imp);
464
889
  }
465
890
  get radius() {
466
891
  return this.imp.radius();
@@ -469,9 +894,9 @@ class CD extends q {
469
894
  this.imp.setRadius(D);
470
895
  }
471
896
  }
472
- class lD extends q {
897
+ class bD extends N {
473
898
  constructor(D) {
474
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbPolyline());
899
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbPolyline());
475
900
  }
476
901
  get isClosed() {
477
902
  return this.imp.isClosed();
@@ -485,8 +910,8 @@ class lD extends q {
485
910
  set constantWidth(D) {
486
911
  this.imp.setConstantWidth(D);
487
912
  }
488
- addVertexAt(D, C, E, F, A) {
489
- return this.imp.addVertexAt(D, C, E, F, A);
913
+ addVertexAt(D, C, B, F, A) {
914
+ return this.imp.addVertexAt(D, C.imp, B, F, A);
490
915
  }
491
916
  removeVertexAt(D) {
492
917
  return this.imp.removeVertexAt(D);
@@ -495,36 +920,36 @@ class lD extends q {
495
920
  return this.imp.numVerts();
496
921
  }
497
922
  getPointAt(D) {
498
- return { val: this.imp.getPointAt(D), ret: s.getCallResult() };
923
+ return { val: this.imp.getPointAt(D), ret: i.getCallResult() };
499
924
  }
500
925
  getBulgeAt(D) {
501
926
  return this.imp.getBulgeAt(D);
502
927
  }
503
928
  getWidthsAt(D) {
504
- return { val1: this.imp.getStartWidthsAt(D), val2: this.imp.getEndWidthsAt(D), ret: s.getCallResult() };
929
+ return { val1: this.imp.getStartWidthsAt(D), val2: this.imp.getEndWidthsAt(D), ret: i.getCallResult() };
505
930
  }
506
931
  setPointAt(D, C) {
507
- return this.imp.setPointAt(D, C);
932
+ return this.imp.setPointAt(D, C.imp);
508
933
  }
509
934
  setBulgeAt(D, C) {
510
935
  return this.imp.setBulgeAt(D, C);
511
936
  }
512
937
  }
513
- class cD extends I {
938
+ class fD extends z {
514
939
  constructor(D) {
515
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbBlockReference());
940
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockReference());
516
941
  }
517
942
  get blockTableRecordId() {
518
- return new x(this.imp.blockTableRecord(), y.kMxCAD);
943
+ return new f(this.imp.blockTableRecord(), x.kMxCAD);
519
944
  }
520
945
  set blockTableRecordId(D) {
521
946
  this.imp.setBlockTableRecordId(D.id);
522
947
  }
523
948
  get position() {
524
- return this.imp.position();
949
+ return new p(this.imp.position());
525
950
  }
526
951
  set position(D) {
527
- this.imp.setPosition(D);
952
+ this.imp.setPosition(D.imp);
528
953
  }
529
954
  get scaleFactors() {
530
955
  return this.imp.scaleFactors();
@@ -539,21 +964,21 @@ class cD extends I {
539
964
  this.imp.setRotation(D);
540
965
  }
541
966
  get blockTransform() {
542
- return this.imp.blockTransform();
967
+ return new Z(this.imp.blockTransform());
543
968
  }
544
969
  set blockTransform(D) {
545
- this.imp.setBlockTransform(D);
970
+ this.imp.setBlockTransform(D.imp);
546
971
  }
547
972
  }
548
- class BD extends I {
973
+ class tD extends z {
549
974
  constructor(D) {
550
975
  super(D);
551
976
  }
552
977
  get textPosition() {
553
- return this.imp.textPosition();
978
+ return new p(this.imp.textPosition());
554
979
  }
555
980
  set textPosition(D) {
556
- this.imp.setTextPosition(D);
981
+ this.imp.setTextPosition(D.imp);
557
982
  }
558
983
  isUsingDefaultTextPosition() {
559
984
  return this.imp.isUsingDefaultTextPosition();
@@ -583,7 +1008,7 @@ class BD extends I {
583
1008
  this.imp.setTextRotation(D);
584
1009
  }
585
1010
  get dimensionStyle() {
586
- return new x(this.imp.dimensionStyle(), y.kMxCAD);
1011
+ return new f(this.imp.dimensionStyle(), x.kMxCAD);
587
1012
  }
588
1013
  set dimensionStyle(D) {
589
1014
  this.imp.setDimensionStyle(D.id);
@@ -622,33 +1047,33 @@ class BD extends I {
622
1047
  this.imp.SetDimVarString(D, C);
623
1048
  }
624
1049
  getDimVarObjectId(D) {
625
- return new x(this.imp.GetDimVarObjectId(D), y.kMxCAD);
1050
+ return new f(this.imp.GetDimVarObjectId(D), x.kMxCAD);
626
1051
  }
627
1052
  setDimVarObjectId(D, C) {
628
1053
  this.imp.SetDimVarObjectId(D, C.id);
629
1054
  }
630
1055
  }
631
- class dD extends BD {
1056
+ class MD extends tD {
632
1057
  constructor(D) {
633
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbAlignedDimension());
1058
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbAlignedDimension());
634
1059
  }
635
1060
  get xLine1Point() {
636
- return this.imp.xLine1Point();
1061
+ return new p(this.imp.xLine1Point());
637
1062
  }
638
1063
  set xLine1Point(D) {
639
- this.imp.setXLine1Point(D);
1064
+ this.imp.setXLine1Point(D.imp);
640
1065
  }
641
1066
  get xLine2Point() {
642
- return this.imp.xLine2Point();
1067
+ return new p(this.imp.xLine2Point());
643
1068
  }
644
1069
  set xLine2Point(D) {
645
- this.imp.setXLine2Point(D);
1070
+ this.imp.setXLine2Point(D.imp);
646
1071
  }
647
1072
  get dimLinePoint() {
648
- return this.imp.dimLinePoint();
1073
+ return new p(this.imp.dimLinePoint());
649
1074
  }
650
1075
  set dimLinePoint(D) {
651
- this.imp.setDimLinePoint(D);
1076
+ this.imp.setDimLinePoint(D.imp);
652
1077
  }
653
1078
  get oblique() {
654
1079
  return this.imp.oblique();
@@ -657,27 +1082,27 @@ class dD extends BD {
657
1082
  this.imp.setOblique(D);
658
1083
  }
659
1084
  }
660
- class mD extends BD {
1085
+ class TD extends tD {
661
1086
  constructor(D) {
662
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbRotatedDimension());
1087
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbRotatedDimension());
663
1088
  }
664
1089
  get xLine1Point() {
665
- return this.imp.xLine1Point();
1090
+ return new p(this.imp.xLine1Point());
666
1091
  }
667
1092
  set xLine1Point(D) {
668
- this.imp.setXLine1Point(D);
1093
+ this.imp.setXLine1Point(D.imp);
669
1094
  }
670
1095
  get xLine2Point() {
671
- return this.imp.xLine2Point();
1096
+ return new p(this.imp.xLine2Point());
672
1097
  }
673
1098
  set xLine2Point(D) {
674
- this.imp.setXLine2Point(D);
1099
+ this.imp.setXLine2Point(D.imp);
675
1100
  }
676
1101
  get dimLinePoint() {
677
- return this.imp.dimLinePoint();
1102
+ return new p(this.imp.dimLinePoint());
678
1103
  }
679
1104
  set dimLinePoint(D) {
680
- this.imp.setDimLinePoint(D);
1105
+ this.imp.setDimLinePoint(D.imp);
681
1106
  }
682
1107
  get oblique() {
683
1108
  return this.imp.oblique();
@@ -692,13 +1117,45 @@ class mD extends BD {
692
1117
  this.imp.setRotation(D);
693
1118
  }
694
1119
  }
695
- function W(B = null) {
1120
+ class PD extends N {
1121
+ constructor(D) {
1122
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbArc());
1123
+ }
1124
+ setCenter(D, C, B) {
1125
+ this.imp.setCenter(new p(D, C, B).imp);
1126
+ }
1127
+ get center() {
1128
+ return new p(this.imp.center());
1129
+ }
1130
+ set center(D) {
1131
+ this.imp.setCenter(D.imp);
1132
+ }
1133
+ get radius() {
1134
+ return this.imp.radius();
1135
+ }
1136
+ set radius(D) {
1137
+ this.imp.setRadius(D);
1138
+ }
1139
+ get startAngle() {
1140
+ return this.imp.startAngle();
1141
+ }
1142
+ set startAngle(D) {
1143
+ this.imp.setStartAngle(D);
1144
+ }
1145
+ get endAngle() {
1146
+ return this.imp.endAngle();
1147
+ }
1148
+ set endAngle(D) {
1149
+ this.imp.setEndAngle(D);
1150
+ }
1151
+ }
1152
+ function V(E = null) {
696
1153
  let D;
697
- return B == null ? D = new s.mxcadassemblyimp.McDrawResbuf() : D = B.getImp(), D;
1154
+ return E == null ? D = new i.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
698
1155
  }
699
- class U extends L {
1156
+ class K extends v {
700
1157
  constructor(D) {
701
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.McDrawResbuf());
1158
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.McDrawResbuf());
702
1159
  }
703
1160
  Clear() {
704
1161
  this.imp.Clear();
@@ -707,16 +1164,16 @@ class U extends L {
707
1164
  return this.imp.GetCount();
708
1165
  }
709
1166
  AtDouble(D) {
710
- return { val: this.imp.AtDouble(D), ret: s.getCallResult() };
1167
+ return { val: this.imp.AtDouble(D), ret: i.getCallResult() };
711
1168
  }
712
1169
  Atlong(D) {
713
- return { val: this.imp.Atlong(D), ret: s.getCallResult() };
1170
+ return { val: this.imp.Atlong(D), ret: i.getCallResult() };
714
1171
  }
715
1172
  AtObject(D) {
716
1173
  if (this.imp.AtObjectName(D) == "McDbMText") {
717
- let E = this.imp.AtObjectMdDbMText(D);
718
- if (E)
719
- return { val: new DD(E), ret: s.getCallResult() };
1174
+ let B = this.imp.AtObjectMdDbMText(D);
1175
+ if (B)
1176
+ return { val: new FD(B), ret: i.getCallResult() };
720
1177
  }
721
1178
  return { val: void 0, ret: -1 };
722
1179
  }
@@ -724,13 +1181,13 @@ class U extends L {
724
1181
  this.imp.AddObject(D.getImp());
725
1182
  }
726
1183
  AtObjectId(D) {
727
- return { val: new x(this.imp.AtObjectId(D), y.kMxCAD), ret: s.getCallResult() };
1184
+ return { val: new f(this.imp.AtObjectId(D), x.kMxCAD), ret: i.getCallResult() };
728
1185
  }
729
1186
  AtString(D) {
730
- return { val: w.decodeFromGb2312(this.imp.AtString(D)), ret: s.getCallResult() };
1187
+ return { val: y.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() };
731
1188
  }
732
1189
  AtPoint(D) {
733
- return { val: this.imp.AtPoint(D), ret: s.getCallResult() };
1190
+ return { val: new p(this.imp.AtPoint(D)), ret: i.getCallResult() };
734
1191
  }
735
1192
  ItemDataType() {
736
1193
  return this.imp.ItemDataType();
@@ -748,7 +1205,7 @@ class U extends L {
748
1205
  return this.imp.AddString(D, C);
749
1206
  }
750
1207
  AddPoint(D, C = -10) {
751
- return this.imp.AddPoint(D, C);
1208
+ return this.imp.AddPoint(D.imp, C);
752
1209
  }
753
1210
  RemoveAll() {
754
1211
  this.imp.RemoveAll();
@@ -757,7 +1214,7 @@ class U extends L {
757
1214
  this.imp.Remove(D);
758
1215
  }
759
1216
  }
760
- class pD {
1217
+ class kD {
761
1218
  imp;
762
1219
  constructor() {
763
1220
  }
@@ -767,67 +1224,56 @@ class pD {
767
1224
  highlightEntity(D, C = !0) {
768
1225
  return this.init(), this.imp.highlightEntity(D, C);
769
1226
  }
770
- findEntAtPoint(D, C, E, F = -1, A = null) {
1227
+ findEntAtPoint(D, C, B, F = -1, A = null) {
771
1228
  this.init();
772
- let e = this.imp.findEntAtPoint(D, C, E, F, W(A));
773
- return new x(e, y.kMxCAD);
1229
+ let t = this.imp.findEntAtPoint(D, C, B, F, V(A));
1230
+ return new f(t, x.kMxCAD);
774
1231
  }
775
1232
  selectEnt(D, C = null) {
776
- return this.init(), new Promise(async (E) => {
777
- const F = new R();
778
- D && F.setMessage(D), F.setCursorType(Q.kRect);
1233
+ return this.init(), new Promise(async (B) => {
1234
+ const F = new M();
1235
+ D && F.setMessage(D), F.setCursorType(qD.kRect);
779
1236
  let A = await F.go();
780
1237
  if (!A) {
781
- E([]);
1238
+ B([]);
782
1239
  return;
783
1240
  }
784
- ND.findEntAtPoint(A).then((e) => {
785
- let t = [];
786
- e.forEach((i) => {
787
- t.push(new x(i, y.kMxDraw));
1241
+ $D.findEntAtPoint(A).then((t) => {
1242
+ let e = [];
1243
+ t.forEach((s) => {
1244
+ e.push(new f(s, x.kMxDraw));
788
1245
  });
789
1246
  let r = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
790
- r.isValid() && t.push(r), E(t);
1247
+ r.isValid() && e.push(r), B(e);
791
1248
  });
792
1249
  });
793
1250
  }
794
1251
  init() {
795
- this.imp || (this.imp = new s.mxcadassemblyimp.McDrawUtility());
1252
+ this.imp || (this.imp = new i.mxcadassemblyimp.McDrawUtility());
796
1253
  }
797
1254
  }
798
- let ED = new pD();
799
- class hD extends L {
1255
+ let eD = new kD();
1256
+ class RD extends v {
800
1257
  constructor() {
801
- super(), this.initTempObject(new s.mxcadassemblyimp.McDrawSelSet());
1258
+ super(), this.initTempObject(new i.mxcadassemblyimp.McDrawSelSet());
802
1259
  }
803
1260
  allSelect(D = null) {
804
- return this.imp.allSelect(W(D));
1261
+ return this.imp.allSelect(V(D));
805
1262
  }
806
- pointSelect(D, C, E = null, F = -1) {
807
- return this.imp.pointSelect(D, C, W(E), F);
1263
+ pointSelect(D, C, B = null, F = -1) {
1264
+ return this.imp.pointSelect(D, C, V(B), F);
808
1265
  }
809
- crossingSelect(D, C, E, F, A = null) {
810
- return this.imp.crossingSelect(D, C, E, F, W(A));
1266
+ crossingSelect(D, C, B, F, A = null) {
1267
+ return this.imp.crossingSelect(D, C, B, F, V(A));
811
1268
  }
812
1269
  count() {
813
1270
  return this.imp.count();
814
1271
  }
815
1272
  item(D) {
816
- return new x(this.imp.item(D), y.kMxCAD);
1273
+ return new f(this.imp.item(D), x.kMxCAD);
817
1274
  }
818
1275
  }
819
- const FD = "1.0.55", JD = "SharedArrayBuffer" in window, $ = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), YD = (B, D = self.location.href) => $ ? `https://unpkg.com/mxcad@${FD}/dist/wasm/2d-st/${B}` : D + B, QD = (B, D = self.location.href) => $ ? `https://unpkg.com/mxcad@${FD}/dist/wasm/2d/${B}` : D + B, ZD = (B, D = self.location.href) => $ ? `https://unpkg.com/mxcad@${FD}/dist/wasm/3d/${B}` : D + B, wD = (B) => new Promise((D, C) => {
820
- const E = document.createElement("script");
821
- E.src = B, E.type = "text/javascript", E.crossOrigin = "anonymous", document.body.appendChild(E), E.onload = () => {
822
- D();
823
- }, E.onerror = (F) => {
824
- C(F);
825
- };
826
- }), DC = async (B, D, C) => {
827
- const { locateFile: E } = C, F = E(B + ".js");
828
- return await wD(F), await globalThis[D](C);
829
- };
830
- class j {
1276
+ class W {
831
1277
  imp;
832
1278
  mxObject;
833
1279
  static currentFileName;
@@ -841,7 +1287,7 @@ class j {
841
1287
  return this.imp;
842
1288
  }
843
1289
  getMxCppImp() {
844
- return s.mxcadassemblyimp;
1290
+ return i.mxcadassemblyimp;
845
1291
  }
846
1292
  updateDisplay(D, C) {
847
1293
  this.imp.updateDisplay(D, C);
@@ -849,46 +1295,49 @@ class j {
849
1295
  test() {
850
1296
  this.imp.test();
851
1297
  }
852
- openWebFile(D, C, E = !0) {
1298
+ openWebFile(D, C, B = !0) {
853
1299
  let F = Math.round(Math.random() * 1e7);
854
1300
  if (C) {
855
- let A = this, e = (t, r) => {
856
- A.mxObject.removeEventFuction("openFileComplete", e), F == r && C(t);
1301
+ let A = this, t = (e, r) => {
1302
+ A.mxObject.removeEventFuction("openFileComplete", t), F == r && C(e);
857
1303
  };
858
- A.mxObject.addEvent("openFileComplete", e);
1304
+ A.mxObject.addEvent("openFileComplete", t);
859
1305
  }
860
- return j.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, E, F);
1306
+ return W.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, F);
861
1307
  }
862
1308
  getCurrentFileName() {
863
- return j.currentFileName;
1309
+ return W.currentFileName;
864
1310
  }
865
- saveFileToUrl(D) {
866
- return this.imp.saveFileToUrl(D);
1311
+ saveFileToUrl(D, C) {
1312
+ const B = window;
1313
+ return B.McDrawObjectEvent_saveFileComplete = function(F, A) {
1314
+ C(A, F);
1315
+ }, this.imp.saveFileToUrl(D);
867
1316
  }
868
- saveFile(D, C, E = !0, F = !0) {
1317
+ saveFile(D, C, B = !0, F = !0, A) {
869
1318
  D || (D = this.getCurrentFileName());
870
- const A = window;
871
- return A.mx_saveFile_call = (e) => {
872
- if (console.log(D), C && C(e), !!e) {
873
- if (E) {
874
- let t;
875
- /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? t = new Blob([e.buffer], { type: "application/octet-stream" }) : t = new Blob([e.buffer], { type: "application/octet-binary" }), F ? V.saveAsFileDialog({
876
- blob: t,
877
- filename: D,
1319
+ const t = window;
1320
+ return t.mx_saveFile_call = (e) => {
1321
+ if (C && C(e), !!e) {
1322
+ if (B) {
1323
+ let r;
1324
+ /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? r = new Blob([e.buffer], { type: "application/octet-stream" }) : r = new Blob([e.buffer], { type: "application/octet-binary" }), F ? H.saveAsFileDialog({
1325
+ blob: r,
1326
+ filename: A || D,
878
1327
  types: [{
879
1328
  description: "mxweb File",
880
1329
  accept: {
881
1330
  "application/octet-stream": [".mxweb"]
882
1331
  }
883
1332
  }]
884
- }) : V.downloadFile(t, D);
1333
+ }) : H.downloadFile(r, D);
885
1334
  }
886
- A.mx_saveFile_call = null;
1335
+ t.mx_saveFile_call = null;
887
1336
  }
888
1337
  }, this.imp.saveFile(D);
889
1338
  }
890
1339
  GetDatabase() {
891
- return new AD(this.imp.GetDatabase());
1340
+ return new ED(this.imp.GetDatabase());
892
1341
  }
893
1342
  GetSysVarString(D) {
894
1343
  return this.imp.GetSysVarString(D);
@@ -909,10 +1358,10 @@ class j {
909
1358
  return this.imp.SetSysVarLong(D, C);
910
1359
  }
911
1360
  get DrawColor() {
912
- return this.imp.GetDrawColor();
1361
+ return new O(this.imp.GetDrawColor());
913
1362
  }
914
1363
  set DrawColor(D) {
915
- this.imp.SetDrawColor(D);
1364
+ this.imp.SetDrawColor(D.getImp());
916
1365
  }
917
1366
  get DrawLineWeight() {
918
1367
  return this.imp.GetDrawLineWeight();
@@ -947,20 +1396,20 @@ class j {
947
1396
  AddLayer(D) {
948
1397
  this.imp.AddLayer(D);
949
1398
  }
950
- AddTextStyle(D, C, E, F) {
951
- this.imp.AddTextStyle(D, C, E, F);
1399
+ AddTextStyle(D, C, B, F) {
1400
+ this.imp.AddTextStyle(D, C, B, F);
952
1401
  }
953
1402
  AddLinetype(D, C) {
954
1403
  this.imp.AddLinetype(D, C);
955
1404
  }
956
- AddLinetypeEx(D, C, E) {
957
- this.imp.AddLinetypeEx(D, C, E);
1405
+ AddLinetypeEx(D, C, B) {
1406
+ this.imp.AddLinetypeEx(D, C, B);
958
1407
  }
959
- DrawLine(D, C, E, F, A, e) {
960
- return this.imp.DrawLine(D, C, E, F, A, e);
1408
+ DrawLine(D, C, B, F, A, t) {
1409
+ return this.imp.DrawLine(D, C, B, F, A, t);
961
1410
  }
962
- AddDimStyle(D, C, E, F, A) {
963
- return this.imp.AddDimStyle(D, C, E, F, A);
1411
+ AddDimStyle(D, C, B, F, A) {
1412
+ return this.imp.AddDimStyle(D, C, B, F, A);
964
1413
  }
965
1414
  get DrawDimStyle() {
966
1415
  return this.imp.GetDrawDimStyle();
@@ -980,65 +1429,65 @@ class j {
980
1429
  set DrawLineWidth(D) {
981
1430
  this.imp.SetDrawLineWidth(D);
982
1431
  }
983
- DrawArc(D, C, E, F, A) {
984
- return this.imp.DrawArc(D, C, E, F, A);
1432
+ DrawArc(D, C, B, F, A) {
1433
+ return this.imp.DrawArc(D, C, B, F, A);
985
1434
  }
986
- DrawArc2(D, C, E, F, A, e) {
987
- return this.imp.DrawArc2(D, C, E, F, A, e);
1435
+ DrawArc2(D, C, B, F, A, t) {
1436
+ return this.imp.DrawArc2(D, C, B, F, A, t);
988
1437
  }
989
- DrawCircle(D, C, E) {
990
- return this.imp.DrawCircle(D, C, E);
1438
+ DrawCircle(D, C, B) {
1439
+ return this.imp.DrawCircle(D, C, B);
991
1440
  }
992
- DrawEllipse(D, C, E, F, A) {
993
- return this.imp.DrawEllipse(D, C, E, F, A);
1441
+ DrawEllipse(D, C, B, F, A) {
1442
+ return this.imp.DrawEllipse(D, C, B, F, A);
994
1443
  }
995
- DrawEllipseArc(D, C, E, F, A, e, t) {
996
- return this.imp.DrawEllipseArc(D, C, E, F, A, e, t);
1444
+ DrawEllipseArc(D, C, B, F, A, t, e) {
1445
+ return this.imp.DrawEllipseArc(D, C, B, F, A, t, e);
997
1446
  }
998
1447
  DrawPoint(D, C) {
999
1448
  return this.imp.DrawPoint(D, C);
1000
1449
  }
1001
- DrawSolid(D, C, E, F, A, e, t, r) {
1002
- return this.imp.DrawSolid(D, C, E, F, A, e, t, r);
1450
+ DrawSolid(D, C, B, F, A, t, e, r) {
1451
+ return this.imp.DrawSolid(D, C, B, F, A, t, e, r);
1003
1452
  }
1004
- DrawMText(D, C, E, F, A, e, t) {
1005
- return this.imp.DrawMText(D, C, E, F, A, e, t);
1453
+ DrawMText(D, C, B, F, A, t, e) {
1454
+ return this.imp.DrawMText(D, C, B, F, A, t, e);
1006
1455
  }
1007
- DrawText(D, C, E, F, A, e, t) {
1008
- return this.imp.DrawTextDrawText(D, C, E, F, A, e, t);
1456
+ DrawText(D, C, B, F, A, t, e) {
1457
+ return this.imp.DrawTextDrawText(D, C, B, F, A, t, e);
1009
1458
  }
1010
- DrawBlockReference(D, C, E, F, A) {
1011
- return this.imp.DrawBlockReference(D, C, E, F, A);
1459
+ DrawBlockReference(D, C, B, F, A) {
1460
+ return this.imp.DrawBlockReference(D, C, B, F, A);
1012
1461
  }
1013
- DrawDimAligned(D, C, E, F, A, e) {
1014
- return this.imp.DrawDimAligned(D, C, E, F, A, e);
1462
+ DrawDimAligned(D, C, B, F, A, t) {
1463
+ return this.imp.DrawDimAligned(D, C, B, F, A, t);
1015
1464
  }
1016
- DrawDimAngular(D, C, E, F, A, e, t, r) {
1017
- return this.imp.DrawDimAngular(D, C, E, F, A, e, t, r);
1465
+ DrawDimAngular(D, C, B, F, A, t, e, r) {
1466
+ return this.imp.DrawDimAngular(D, C, B, F, A, t, e, r);
1018
1467
  }
1019
- DrawDimDiametric(D, C, E, F, A) {
1020
- return this.imp.DrawDimDiametric(D, C, E, F, A);
1468
+ DrawDimDiametric(D, C, B, F, A) {
1469
+ return this.imp.DrawDimDiametric(D, C, B, F, A);
1021
1470
  }
1022
- DrawDimRotated(D, C, E, F, A, e, t) {
1023
- return this.imp.DrawDimRotated(D, C, E, F, A, e, t);
1471
+ DrawDimRotated(D, C, B, F, A, t, e) {
1472
+ return this.imp.DrawDimRotated(D, C, B, F, A, t, e);
1024
1473
  }
1025
- DrawDimOrdinate(D, C, E, F, A) {
1026
- return this.imp.DrawDimOrdinate(D, C, E, F, A);
1474
+ DrawDimOrdinate(D, C, B, F, A) {
1475
+ return this.imp.DrawDimOrdinate(D, C, B, F, A);
1027
1476
  }
1028
- DrawDimRadial(D, C, E, F, A) {
1029
- return this.imp.DrawDimRadial(D, C, E, F, A);
1477
+ DrawDimRadial(D, C, B, F, A) {
1478
+ return this.imp.DrawDimRadial(D, C, B, F, A);
1030
1479
  }
1031
1480
  PathMoveTo(D, C) {
1032
1481
  this.imp.PathMoveTo(D, C);
1033
1482
  }
1034
- PathMoveToEx(D, C, E, F, A) {
1035
- this.imp.PathMoveToEx(D, C, E, F, A);
1483
+ PathMoveToEx(D, C, B, F, A) {
1484
+ this.imp.PathMoveToEx(D, C, B, F, A);
1036
1485
  }
1037
1486
  PathLineTo(D, C) {
1038
1487
  this.imp.PathLineTo(D, C);
1039
1488
  }
1040
- PathLineToEx(D, C, E, F, A) {
1041
- this.imp.PathLineToEx(D, C, E, F, A);
1489
+ PathLineToEx(D, C, B, F, A) {
1490
+ this.imp.PathLineToEx(D, C, B, F, A);
1042
1491
  }
1043
1492
  DrawPathToPolyline() {
1044
1493
  return this.imp.DrawPathToPolyline();
@@ -1056,20 +1505,20 @@ class j {
1056
1505
  return this.imp.DrawEntity(D.getImp());
1057
1506
  }
1058
1507
  ObjectIdToObject(D) {
1059
- return s.App.ObjectIdToObject(D);
1508
+ return i.App.ObjectIdToObject(D);
1060
1509
  }
1061
1510
  CloneMcDbObject(D) {
1062
1511
  let C = this.imp.CloneMcDbObject(D);
1063
- return s.App.CreateCloneObject(C);
1512
+ return i.App.CreateCloneObject(C);
1064
1513
  }
1065
1514
  ObjectIdToMdObjectImp(D) {
1066
- return s.App.getImp().ObjectIdToMdObject(D);
1515
+ return i.App.getImp().ObjectIdToMdObject(D);
1067
1516
  }
1068
1517
  DestroyObject(D) {
1069
- !D || s.App.getImp().DestroyObject(D);
1518
+ !D || i.App.getImp().DestroyObject(D);
1070
1519
  }
1071
1520
  }
1072
- class gD {
1521
+ class LD {
1073
1522
  imp;
1074
1523
  init(D) {
1075
1524
  this.imp = D;
@@ -1080,318 +1529,117 @@ class gD {
1080
1529
  getLastCallResult() {
1081
1530
  return this.imp.getLastCallResult();
1082
1531
  }
1083
- CreateMxCAD(D, C, E, F, A) {
1084
- let e = this.imp.CreateMxDraw(D, C, E, F, A);
1085
- return new j(e);
1532
+ CreateMxCAD(D, C, B, F, A) {
1533
+ let t = this.imp.CreateMxDraw(D, C, B, F, A);
1534
+ return new W(t);
1086
1535
  }
1087
1536
  DestroyObject(D) {
1088
1537
  this.imp.DestroyObject(D);
1089
1538
  }
1090
1539
  GetCurrentMxCAD() {
1091
- return new j(this.imp.GetCurrentMxDraw());
1540
+ return new W(this.imp.GetCurrentMxDraw());
1092
1541
  }
1093
- mcedRGB2Index(D, C, E, F = !0) {
1094
- return this.imp.mcedRGB2Index(D, C, E, F);
1542
+ mcedRGB2Index(D, C, B, F = !0) {
1543
+ return this.imp.mcedRGB2Index(D, C, B, F);
1095
1544
  }
1096
1545
  ObjectIdToObject(D) {
1097
1546
  if (!D)
1098
1547
  return null;
1099
1548
  let C = this.imp.ObjectIdToObjectName(D);
1100
1549
  if (C == "McDbLine") {
1101
- let E = this.imp.ObjectIdToMdDbLine(D);
1102
- return new H(E);
1550
+ let B = this.imp.ObjectIdToMdDbLine(D);
1551
+ return new J(B);
1103
1552
  } else if (C == "McDbText") {
1104
- let E = this.imp.ObjectIdToMdDbText(D);
1105
- return new _(E);
1553
+ let B = this.imp.ObjectIdToMdDbText(D);
1554
+ return new Q(B);
1106
1555
  } else if (C == "McDbPolyline") {
1107
- let E = this.imp.ObjectIdToMdDbPolyline(D);
1108
- return new lD(E);
1556
+ let B = this.imp.ObjectIdToMdDbPolyline(D);
1557
+ return new bD(B);
1109
1558
  } else if (C == "McDbCircle") {
1110
- let E = this.imp.ObjectIdToMdDbCircle(D);
1111
- return new CD(E);
1559
+ let B = this.imp.ObjectIdToMdDbCircle(D);
1560
+ return new AD(B);
1561
+ } else if (C == "McDbArc") {
1562
+ let B = this.imp.ObjectIdToMdDbArc(D);
1563
+ return new PD(B);
1112
1564
  } else if (C == "McDbBlockReference") {
1113
- let E = this.imp.ObjectIdToMdDbBlockReference(D);
1114
- return new cD(E);
1565
+ let B = this.imp.ObjectIdToMdDbBlockReference(D);
1566
+ return new fD(B);
1115
1567
  } else if (C == "McDbAlignedDimension") {
1116
- let E = this.imp.ObjectIdToMdDbAlignedDimension(D);
1117
- return new dD(E);
1568
+ let B = this.imp.ObjectIdToMdDbAlignedDimension(D);
1569
+ return new MD(B);
1118
1570
  } else if (C == "McDbRotatedDimension") {
1119
- let E = this.imp.ObjectIdToMdDbRotatedDimension(D);
1120
- return new mD(E);
1571
+ let B = this.imp.ObjectIdToMdDbRotatedDimension(D);
1572
+ return new TD(B);
1121
1573
  } else if (C == "McDbMText") {
1122
- let E = this.imp.ObjectIdToMdDbMText(D);
1123
- return new DD(E);
1574
+ let B = this.imp.ObjectIdToMdDbMText(D);
1575
+ return new FD(B);
1124
1576
  }
1125
1577
  return console.log("Mx ObjectIdToObject error type:" + C), null;
1126
1578
  }
1127
1579
  CreateCloneObject(D) {
1128
1580
  let C = D.getObjectName();
1129
1581
  if (C == "McDbLine") {
1130
- let E = new H();
1131
- return E.getImp().ConnectionTempObject(D), s.App.DestroyObject(D), E;
1582
+ let B = new J();
1583
+ return B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B;
1132
1584
  } else if (C == "McDbText") {
1133
- let E = new _();
1134
- return E.getImp().ConnectionTempObject(D), s.App.DestroyObject(D), E;
1585
+ let B = new Q();
1586
+ return B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B;
1135
1587
  }
1136
- return console.log("Mx: Clone error type"), new v(D);
1588
+ return console.log("Mx: Clone error type"), new S(D);
1137
1589
  }
1138
1590
  }
1139
- class yD {
1591
+ class SD {
1140
1592
  mxcadassemblyimp;
1141
- App = new gD();
1142
- NewMcCmColor() {
1143
- return new this.mxcadassemblyimp.MdCmColor();
1144
- }
1593
+ App = new LD();
1145
1594
  getCallResult() {
1146
1595
  return this.App.getLastCallResult();
1147
1596
  }
1148
1597
  NewMcGePoint3d(D, C) {
1149
1598
  if (C && D && D.x && D.y) {
1150
1599
  let F = D.z || 0;
1151
- D = m.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
1600
+ D = d.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
1152
1601
  }
1153
- let E = new this.mxcadassemblyimp.MdGePoint3d();
1154
- return D && D.x && D.y && (E.x = D.x, E.y = D.y, D.z && (E.y = D.z)), E;
1155
- }
1156
- NewMcGePoint3d2(D, C, E) {
1157
- let F = new this.mxcadassemblyimp.MdGePoint3d();
1158
- return F.x = D, F.y = C, E && (F.y = E), F;
1602
+ let B = new p();
1603
+ return D && D.x && D.y && (B.x = D.x, B.y = D.y, D.z && (B.y = D.z)), B;
1159
1604
  }
1160
1605
  }
1161
- let s;
1162
- async function bD(B, D = JD || !$ ? YD : QD, C) {
1163
- return new Promise(async (E, F) => {
1606
+ const iD = "1.0.57", AC = "SharedArrayBuffer" in window, X = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), tC = (E, D = self.location.href) => X ? `https://unpkg.com/mxcad@${iD}/dist/wasm/2d-st/${E}` : D + E, eC = (E, D = self.location.href) => X ? `https://unpkg.com/mxcad@${iD}/dist/wasm/2d/${E}` : D + E, iC = (E, D = self.location.href) => X ? `https://unpkg.com/mxcad@${iD}/dist/wasm/3d/${E}` : D + E, vD = (E) => new Promise((D, C) => {
1607
+ const B = document.createElement("script");
1608
+ B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
1609
+ D();
1610
+ }, B.onerror = (F) => {
1611
+ C(F);
1612
+ };
1613
+ }), rC = async (E, D, C) => {
1614
+ const { locateFile: B } = C, F = B(E + ".js");
1615
+ return await vD(F), await globalThis[D](C);
1616
+ };
1617
+ let i;
1618
+ async function OD(E, D = AC || !X ? tC : eC, C) {
1619
+ return new Promise(async (B, F) => {
1164
1620
  try {
1165
- if (s || (s = new yD()), s.mxcadassemblyimp)
1166
- return B && B(s), E(s);
1167
- const e = await DC("mxdrawassembly_min", "mxdrawassembly", {
1621
+ if (i || (i = new SD()), i.mxcadassemblyimp)
1622
+ return E && E(i), B(i);
1623
+ const t = await rC("mxdrawassembly_min", "mxdrawassembly", {
1168
1624
  locateFile: D,
1169
1625
  wasmBinary: C
1170
1626
  });
1171
- s.mxcadassemblyimp = e;
1172
- let t = new e.McApp();
1173
- t.Init(), s.App.init(t), s.App.GetCurrentMxCAD(), B && B(s), E(s);
1627
+ i.mxcadassemblyimp = t;
1628
+ let e = new t.McApp();
1629
+ e.Init(), i.App.init(e), i.App.GetCurrentMxCAD(), E && E(i), B(i);
1174
1630
  } catch (A) {
1175
1631
  F(A);
1176
1632
  }
1177
1633
  });
1178
1634
  }
1179
- var Z;
1180
- ((B) => {
1181
- ((D) => {
1182
- D[D.kTextLeft = 0] = "kTextLeft", D[D.kTextCenter = 1] = "kTextCenter", D[D.kTextRight = 2] = "kTextRight", D[D.kTextAlign = 3] = "kTextAlign", D[D.kTextMid = 4] = "kTextMid", D[D.kTextFit = 5] = "kTextFit";
1183
- })(B.TextHorzMode || (B.TextHorzMode = {})), ((D) => {
1184
- D[D.kTextBase = 0] = "kTextBase", D[D.kTextBottom = 1] = "kTextBottom", D[D.kTextVertMid = 2] = "kTextVertMid", D[D.kTextTop = 3] = "kTextTop";
1185
- })(B.TextVertMode || (B.TextVertMode = {})), ((D) => {
1186
- D[D.kTopLeft = 1] = "kTopLeft", D[D.kTopCenter = 2] = "kTopCenter", D[D.kTopRight = 3] = "kTopRight", D[D.kMiddleLeft = 4] = "kMiddleLeft", D[D.kMiddleCenter = 5] = "kMiddleCenter", D[D.kMiddleRight = 6] = "kMiddleRight", D[D.kBottomLeft = 7] = "kBottomLeft", D[D.kBottomCenter = 8] = "kBottomCenter", D[D.kBottomRight = 9] = "kBottomRight", D[D.kBaseLeft = 10] = "kBaseLeft", D[D.kBaseCenter = 11] = "kBaseCenter", D[D.kBaseRight = 12] = "kBaseRight", D[D.kBaseAlign = 13] = "kBaseAlign", D[D.kBottomAlign = 14] = "kBottomAlign", D[D.kMiddleAlign = 15] = "kMiddleAlign", D[D.kTopAlign = 16] = "kTopAlign", D[D.kBaseFit = 17] = "kBaseFit", D[D.kBottomFit = 18] = "kBottomFit", D[D.kMiddleFit = 19] = "kMiddleFit", D[D.kTopFit = 20] = "kTopFit", D[D.kBaseMid = 21] = "kBaseMid", D[D.kBottomMid = 22] = "kBottomMid", D[D.kMiddleMid = 23] = "kMiddleMid", D[D.kTopMid = 24] = "kTopMid";
1187
- })(B.AttachmentPoint || (B.AttachmentPoint = {})), ((D) => {
1188
- D[D.kLnWt000 = 0] = "kLnWt000", D[D.kLnWt005 = 5] = "kLnWt005", D[D.kLnWt009 = 9] = "kLnWt009", D[D.kLnWt013 = 13] = "kLnWt013", D[D.kLnWt015 = 15] = "kLnWt015", D[D.kLnWt018 = 18] = "kLnWt018", D[D.kLnWt020 = 20] = "kLnWt020", D[D.kLnWt025 = 25] = "kLnWt025", D[D.kLnWt030 = 30] = "kLnWt030", D[D.kLnWt035 = 35] = "kLnWt035", D[D.kLnWt040 = 40] = "kLnWt040", D[D.kLnWt050 = 50] = "kLnWt050", D[D.kLnWt053 = 53] = "kLnWt053", D[D.kLnWt060 = 60] = "kLnWt060", D[D.kLnWt070 = 70] = "kLnWt070", D[D.kLnWt080 = 80] = "kLnWt080", D[D.kLnWt090 = 90] = "kLnWt090", D[D.kLnWt100 = 100] = "kLnWt100", D[D.kLnWt106 = 106] = "kLnWt106", D[D.kLnWt120 = 120] = "kLnWt120", D[D.kLnWt140 = 140] = "kLnWt140", D[D.kLnWt158 = 158] = "kLnWt158", D[D.kLnWt200 = 200] = "kLnWt200", D[D.kLnWt211 = 211] = "kLnWt211", D[D.kLnWtByLayer = -1] = "kLnWtByLayer", D[D.kLnWtByBlock = -2] = "kLnWtByBlock", D[D.kLnWtByLwDefault = -3] = "kLnWtByLwDefault";
1189
- })(B.LineWeight || (B.LineWeight = {}));
1190
- })(Z || (Z = {}));
1191
- class CC extends v {
1192
- constructor(D) {
1193
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbLayerTableRecord());
1194
- }
1195
- get name() {
1196
- return this.imp.getName();
1197
- }
1198
- set name(D) {
1199
- this.imp.setName(D);
1200
- }
1201
- get isFrozen() {
1202
- return this.imp.isFrozen();
1203
- }
1204
- set isFrozen(D) {
1205
- this.imp.setIsFrozen(D);
1206
- }
1207
- get isOff() {
1208
- return this.imp.isOff();
1209
- }
1210
- set isOff(D) {
1211
- this.imp.setIsOff(D);
1212
- }
1213
- get isLocked() {
1214
- return this.imp.isLocked();
1215
- }
1216
- set isLocked(D) {
1217
- this.imp.setIsLocked(D);
1218
- }
1219
- get color() {
1220
- return this.imp.color();
1221
- }
1222
- set color(D) {
1223
- this.imp.setColor(D);
1224
- }
1225
- get linetypeObjectId() {
1226
- return new x(this.imp.linetypeObjectId(), y.kMxCAD);
1227
- }
1228
- set linetypeObjectId(D) {
1229
- this.imp.setLinetypeObjectId(D.id);
1230
- }
1231
- get lineWeight() {
1232
- return this.imp.lineWeight();
1233
- }
1234
- set lineWeight(D) {
1235
- this.imp.setLineWeight(D);
1236
- }
1237
- }
1238
- class xD extends v {
1239
- constructor(D) {
1240
- super(D);
1241
- }
1242
- }
1243
- class fD extends v {
1244
- constructor(D) {
1245
- super(D);
1246
- }
1247
- }
1248
- class MD extends v {
1249
- constructor(D) {
1250
- super(D);
1251
- }
1252
- }
1253
- class AD extends L {
1254
- constructor(D) {
1255
- super(D);
1256
- }
1257
- GetLayerTable() {
1258
- return new xD(this.imp.GetLayerTable());
1259
- }
1260
- GetLinetypeTable() {
1261
- return new fD(this.imp.GetLinetypeTable());
1262
- }
1263
- GetTextStyleTable() {
1264
- return new MD(this.imp.GetTextStyleTable());
1265
- }
1266
- GetBlockTable() {
1267
- return new PD(this.imp.GetBlockTable());
1268
- }
1269
- CurrentSpace() {
1270
- return new X(this.imp.CurrentSpace());
1271
- }
1272
- GetCurrentlyLineTypeScale() {
1273
- return this.imp.GetCurrentlyLineTypeScale();
1274
- }
1275
- SetCurrentlyLineTypeScale(D) {
1276
- return this.imp.SetCurrentlyLineTypeScale(D);
1277
- }
1278
- GetCurrentlyLineTypeName() {
1279
- let D = this.imp.GetCurrentlyLineTypeName();
1280
- return w.decodeFromGb2312(D);
1281
- }
1282
- SetCurrentlyLineTypeName(D) {
1283
- let C = w.encodeToGb2312(D);
1284
- this.imp.SetCurrentlyLineTypeName(C);
1285
- }
1286
- GetCurrentlyLayerName() {
1287
- let D = this.imp.GetCurrentlyLayerName();
1288
- return w.decodeFromGb2312(D);
1289
- }
1290
- SetCurrentlyLayerName(D) {
1291
- let C = w.encodeToGb2312(D);
1292
- this.imp.SetCurrentlyLayerName(C);
1293
- }
1294
- GetCurrentlyTrueColor() {
1295
- return this.imp.GetCurrentlyTrueColor();
1296
- }
1297
- SetCurrentlyTrueColor(D) {
1298
- return this.imp.SetCurrentlyTrueColor(D);
1299
- }
1300
- GetCurrentlyColorIndex() {
1301
- return this.imp.GetCurrentlyColorIndex();
1302
- }
1303
- SetCurrentlyColorIndex(D) {
1304
- return this.imp.SetCurrentlyColorIndex(D);
1305
- }
1306
- GetCurrentlyTextStyleName() {
1307
- let D = this.imp.GetCurrentlyTextStyleName();
1308
- return w.decodeFromGb2312(D);
1309
- }
1310
- SetCurrentlyTextStyle(D) {
1311
- let C = w.encodeToGb2312(D);
1312
- this.imp.SetCurrentlyTextStyle(C);
1313
- }
1314
- }
1315
- class TD extends L {
1316
- constructor(D) {
1317
- super(D);
1318
- }
1319
- start(D = !0, C = !0) {
1320
- this.imp.start(D, C);
1321
- }
1322
- done() {
1323
- return this.imp.done();
1324
- }
1325
- getEntityId() {
1326
- return new x(this.imp.getEntityId(), y.kMxCAD);
1327
- }
1328
- step(D = !0, C = !0) {
1329
- return this.imp.step(D, C);
1330
- }
1331
- }
1332
- class X extends v {
1333
- constructor(D) {
1334
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbBlockTableRecord());
1335
- }
1336
- appendAcDbEntity(D) {
1337
- return new x(this.imp.appendAcDbEntity(D.getImp()), y.kMxCAD);
1338
- }
1339
- newIterator(D = !0, C = !0) {
1340
- let E = this.imp.newIterator(D, C);
1341
- return new TD(E);
1342
- }
1343
- get origin() {
1344
- return this.imp.origin();
1345
- }
1346
- set origin(D) {
1347
- this.imp.setOrigin(D);
1348
- }
1349
- }
1350
- class kD extends L {
1351
- constructor(D) {
1352
- super(D);
1353
- }
1354
- start(D = !0, C = !0) {
1355
- this.imp.start(D, C);
1356
- }
1357
- done() {
1358
- return this.imp.done();
1359
- }
1360
- getRecord() {
1361
- let D = this.imp.getRecord();
1362
- return new X(D);
1363
- }
1364
- step(D = !0, C = !0) {
1365
- this.imp.start(D, C);
1366
- }
1367
- }
1368
- class PD extends v {
1369
- constructor(D) {
1370
- super(D), D || this.initTempObject(new s.mxcadassemblyimp.MdDbBlockTable());
1371
- }
1372
- getAt(D) {
1373
- let C = this.getAt(D);
1374
- return C && new X(C);
1375
- }
1376
- has(D) {
1377
- return this.imp.has(D);
1378
- }
1379
- newIterator(D = !0, C = !0) {
1380
- let E = this.imp.newIterator(D, C);
1381
- return new kD(E);
1382
- }
1383
- add(D) {
1384
- return this.imp.add(D.getImp());
1385
- }
1386
- }
1387
- const BC = (B) => {
1635
+ const sC = (E) => {
1388
1636
  let D = null;
1389
- if (typeof B == "string" ? D = document.querySelector(B) : B instanceof HTMLCanvasElement && (D = B), !!D)
1637
+ if (typeof E == "string" ? D = document.querySelector(E) : E instanceof HTMLCanvasElement && (D = E), !!D)
1390
1638
  return D.id || (D.id = Math.random().toString(16).slice(2)), D.id;
1391
- }, EC = (B, D) => new Promise((C, E) => {
1639
+ }, nC = (E, D) => new Promise((C, B) => {
1392
1640
  try {
1393
- m.createMxObject({
1394
- canvasId: BC(B),
1641
+ d.createMxObject({
1642
+ canvasId: sC(E),
1395
1643
  isCPPMxCAD: !0,
1396
1644
  userIdentitySign: D,
1397
1645
  callback(F) {
@@ -1401,324 +1649,333 @@ const BC = (B) => {
1401
1649
  }
1402
1650
  });
1403
1651
  } catch (F) {
1404
- E(F);
1652
+ B(F);
1405
1653
  }
1406
- }), FC = async (B) => {
1407
- rD.state.MxFun || await KD();
1408
- const { locateFile: D, wasmBinary: C, canvas: E, userIdentitySign: F, onOpenFileComplete: A, fileUrl: e, onInit: t = () => {
1409
- m.setIniset({
1654
+ }), oC = async (E) => {
1655
+ oD.state.MxFun || await JD();
1656
+ const { locateFile: D, wasmBinary: C, canvas: B, userIdentitySign: F, onOpenFileComplete: A, fileUrl: t, onInit: e = () => {
1657
+ d.setIniset({
1410
1658
  EnableIntelliSelect: !0,
1411
1659
  IntelliSelectType: 1,
1412
1660
  multipleSelect: !1
1413
1661
  });
1414
- } } = B || {};
1415
- await bD(() => {
1662
+ } } = E || {};
1663
+ await OD(() => {
1416
1664
  }, D, C);
1417
- let r = m.getCurrentDraw();
1418
- t(), r._mxdrawObj || (r = await EC(E, F));
1419
- const i = m.getMxFunTHREE();
1420
- let o = new i.Vector2();
1665
+ let r = d.getCurrentDraw();
1666
+ e(), r._mxdrawObj || (r = await nC(B, F));
1667
+ const s = d.getMxFunTHREE();
1668
+ let o = new s.Vector2();
1421
1669
  r.getRenderer().getSize(o);
1422
- const a = s.App.CreateMxCAD(o.width, o.height, r.getCanvas().id, r.isWebgl2(), r.getId());
1670
+ const a = i.App.CreateMxCAD(o.width, o.height, r.getCanvas().id, r.isWebgl2(), r.getId());
1423
1671
  return r.initMxCpp(a), r.addEvent("openFileComplete", () => {
1424
1672
  A && A();
1425
- }), e && a.openWebFile(e), a;
1673
+ }), t && a.openWebFile(t), a;
1426
1674
  };
1427
- async function AC() {
1428
- const B = new R();
1429
- B.setMessage(`
1675
+ async function aC() {
1676
+ const E = new M();
1677
+ E.setMessage(`
1430
1678
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
1431
- let D = await B.go();
1679
+ let D = await E.go();
1432
1680
  if (D == null)
1433
1681
  return;
1434
1682
  let C = "\u6D4B\u8BD5";
1435
1683
  if (C.length <= 0)
1436
1684
  return;
1437
- let E = m.screenCoordLong2Doc(50);
1438
- C = V.b64Encode(C);
1685
+ let B = d.screenCoordLong2Doc(50);
1686
+ C = H.b64Encode(C);
1439
1687
  const F = {
1440
1688
  postx: D.x,
1441
1689
  posty: D.y,
1442
1690
  text: C,
1443
- height: E
1691
+ height: B
1444
1692
  };
1445
- m.call("Mx_Text", F);
1693
+ d.call("Mx_Text", F);
1446
1694
  }
1447
- class eC extends sD {
1695
+ class uC extends aD {
1448
1696
  getGripPoints() {
1449
- const { x: D, y: C, z: E } = this.center;
1450
- let F = new THREE.Vector3(D, C + this.radius, E), A = new THREE.Vector3(D, C - this.radius, E), e = new THREE.Vector3(D - this.radius, C, E), t = new THREE.Vector3(D + this.radius, C, E);
1451
- return [this.center, F, A, e, t];
1697
+ const { x: D, y: C, z: B } = this.center;
1698
+ let F = new THREE.Vector3(D, C + this.radius, B), A = new THREE.Vector3(D, C - this.radius, B), t = new THREE.Vector3(D - this.radius, C, B), e = new THREE.Vector3(D + this.radius, C, B);
1699
+ return [this.center, F, A, t, e];
1452
1700
  }
1453
1701
  moveGripPointsAt(D, C) {
1454
- const [E, F, A, e, t] = this.getGripPoints();
1455
- return D === 0 && (this.center = E.add(C)), D === 1 && (this.radius = F.add(C).distanceTo(this.center)), D === 2 && (this.radius = A.add(C).distanceTo(this.center)), D === 3 && (this.radius = e.add(C).distanceTo(this.center)), D === 4 && (this.radius = t.add(C).distanceTo(this.center)), !0;
1702
+ const [B, F, A, t, e] = this.getGripPoints();
1703
+ return D === 0 && (this.center = B.add(C)), D === 1 && (this.radius = F.add(C).distanceTo(this.center)), D === 2 && (this.radius = A.add(C).distanceTo(this.center)), D === 3 && (this.radius = t.add(C).distanceTo(this.center)), D === 4 && (this.radius = e.add(C).distanceTo(this.center)), !0;
1456
1704
  }
1457
1705
  }
1458
- const tD = (B) => {
1459
- const [D, C, E] = B, { x: F, y: A, z: e } = D, { x: t, y: r, z: i } = C, { x: o, y: a, z: c } = E, n = A * i - r * e - A * c + a * e + r * c - a * i, u = -(F * i - t * e - F * c + o * e + t * c - o * i), p = F * r - t * A - F * a + o * A + t * a - o * r, d = -(F * r * c - F * a * i - t * A * c + t * a * e + o * A * i - o * r * e), l = 2 * (t - F), g = 2 * (r - A), f = 2 * (i - e), S = F * F + A * A + e * e - t * t - r * r - i * i, M = 2 * (o - F), T = 2 * (a - A), k = 2 * (c - e), O = F * F + A * A + e * e - o * o - a * a - c * c, ID = -(u * f * O - u * k * S - g * p * O + g * k * d + T * p * S - T * f * d) / (n * g * k - n * T * f - l * u * k + l * T * p + M * u * f - M * g * p), WD = (n * f * O - n * k * S - l * p * O + l * k * d + M * p * S - M * f * d) / (n * g * k - n * T * f - l * u * k + l * T * p + M * u * f - M * g * p), UD = -(n * g * O - n * T * S - l * u * O + l * T * d + M * u * S - M * g * d) / (n * g * k - n * T * f - l * u * k + l * T * p + M * u * f - M * g * p);
1460
- return new THREE.Vector3(ID, WD, UD);
1706
+ const sD = (E) => {
1707
+ const [D, C, B] = E, { x: F, y: A, z: t } = D, { x: e, y: r, z: s } = C, { x: o, y: a, z: m } = B, n = A * s - r * t - A * m + a * t + r * m - a * s, u = -(F * s - e * t - F * m + o * t + e * m - o * s), h = F * r - e * A - F * a + o * A + e * a - o * r, w = -(F * r * m - F * a * s - e * A * m + e * a * t + o * A * s - o * r * t), l = 2 * (e - F), c = 2 * (r - A), T = 2 * (s - t), j = F * F + A * A + t * t - e * e - r * r - s * s, P = 2 * (o - F), k = 2 * (a - A), R = 2 * (m - t), I = F * F + A * A + t * t - o * o - a * a - m * m, KD = -(u * T * I - u * R * j - c * h * I + c * R * w + k * h * j - k * T * w) / (n * c * R - n * k * T - l * u * R + l * k * h + P * u * T - P * c * h), HD = (n * T * I - n * R * j - l * h * I + l * R * w + P * h * j - P * T * w) / (n * c * R - n * k * T - l * u * R + l * k * h + P * u * T - P * c * h), ND = -(n * c * I - n * k * j - l * u * I + l * k * w + P * u * j - P * c * w) / (n * c * R - n * k * T - l * u * R + l * k * h + P * u * T - P * c * h);
1708
+ return new THREE.Vector3(KD, HD, ND);
1461
1709
  };
1462
- function RD() {
1463
- const B = new R();
1464
- let D = new eC();
1465
- P.use(D), D.closed = !1;
1466
- let C = 0, E = "default", F = !0;
1710
+ function jD() {
1711
+ const E = new M();
1712
+ let D = new uC();
1713
+ L.use(D), D.closed = !1;
1714
+ let C = 0, B = "default", F = !0;
1467
1715
  const A = () => {
1468
- B.setUserDraw(
1716
+ E.setUserDraw(
1469
1717
  (n, u) => {
1470
1718
  D.radius = F ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, u.drawCustomEntity(D), u.drawLine(D.center, n);
1471
1719
  }
1472
1720
  );
1473
- }, e = (n) => {
1474
- if (E === "default") {
1475
- if (n === h.kOk) {
1721
+ }, t = (n) => {
1722
+ if (B === "default") {
1723
+ if (n === g.kOk) {
1476
1724
  if (C === 0)
1477
- B.setMessage(`
1478
- \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), B.setKeyWords("[\u76F4\u5F84(D)]"), D.center = B.value(), A();
1725
+ E.setMessage(`
1726
+ \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), A();
1479
1727
  else if (C === 1)
1480
- return m.getCurrentDraw().addMxEntity(D), !0;
1728
+ return i.App.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1481
1729
  C++;
1482
1730
  }
1483
- n === h.kKeyWord && B.isKeyWordPicked("D") && (F = !1, A(), B.setMessage(`
1484
- \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), B.setKeyWords(""));
1731
+ n === g.kKeyWord && E.isKeyWordPicked("D") && (F = !1, A(), E.setMessage(`
1732
+ \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
1485
1733
  }
1486
1734
  };
1487
- let t = [];
1735
+ let e = [];
1488
1736
  const r = (n) => {
1489
- if (E === "3P" && (B.setMessage(`
1490
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === h.kOk)) {
1491
- if (C === 0 && (t.push(B.value()), B.setUserDraw((u, p) => {
1492
- p.drawLine(t[0], u);
1493
- }), B.setMessage(`
1494
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), C === 1 && (t.push(B.value()), B.setUserDraw((u, p) => {
1495
- const [d, l] = t, g = u;
1496
- D.center = tD([
1497
- d,
1737
+ if (B === "3P" && (E.setMessage(`
1738
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === g.kOk)) {
1739
+ if (C === 0 && (e.push(E.value()), E.setUserDraw((u, h) => {
1740
+ h.drawLine(e[0], u);
1741
+ }), E.setMessage(`
1742
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), C === 1 && (e.push(E.value()), E.setUserDraw((u, h) => {
1743
+ const [w, l] = e, c = u;
1744
+ D.center = sD([
1745
+ w,
1498
1746
  l,
1499
- g
1500
- ]), D.radius = D.center.distanceTo(d), p.drawCustomEntity(D);
1501
- }), B.setMessage(`
1747
+ c
1748
+ ]), D.radius = D.center.distanceTo(w), h.drawCustomEntity(D);
1749
+ }), E.setMessage(`
1502
1750
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), C === 2)
1503
- return t.push(B.value()), D.center = tD(t), D.radius = D.center.distanceTo(t[0]), m.getCurrentDraw().addMxEntity(D), !0;
1751
+ return e.push(E.value()), D.center = sD(e), D.radius = D.center.distanceTo(e[0]), i.App.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1504
1752
  C++;
1505
1753
  }
1506
1754
  };
1507
- let i;
1755
+ let s;
1508
1756
  const o = (n, u) => {
1509
1757
  new THREE.Line3(n, u).getCenter(D.center), D.radius = u.distanceTo(n) / 2;
1510
1758
  }, a = (n) => {
1511
- if (E === "2P" && (B.setMessage(`
1512
- \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === h.kOk)) {
1513
- if (C === 0 && (i = B.value(), B.setUserDraw((u, p) => {
1514
- o(i, u), p.drawCustomEntity(D), p.drawLine(i, u);
1515
- }), B.setMessage(`
1759
+ if (B === "2P" && (E.setMessage(`
1760
+ \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === g.kOk)) {
1761
+ if (C === 0 && (s = E.value(), E.setUserDraw((u, h) => {
1762
+ o(s, u), h.drawCustomEntity(D), h.drawLine(s, u);
1763
+ }), E.setMessage(`
1516
1764
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), C === 1)
1517
- return o(i, B.value()), m.getCurrentDraw().addMxEntity(D), !0;
1765
+ return o(s, E.value()), i.App.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1518
1766
  C++;
1519
1767
  }
1520
- }, c = (n) => {
1521
- if (E === "T") {
1522
- if (B.setMessage(`
1523
- \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === h.kOk) {
1768
+ }, m = (n) => {
1769
+ if (B === "T") {
1770
+ if (E.setMessage(`
1771
+ \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === g.kOk) {
1524
1772
  if (C === 0) {
1525
- const u = B.value();
1526
- console.log(u), m.getCurrentDraw();
1773
+ const u = E.value();
1774
+ console.log(u), d.getCurrentDraw();
1527
1775
  }
1528
1776
  C++;
1529
1777
  }
1530
1778
  return !0;
1531
1779
  }
1532
1780
  };
1533
- B.setMessage(
1781
+ E.setMessage(
1534
1782
  `
1535
1783
  \u6307\u5B9A\u5706\u7684\u5706\u5FC3\u6216[\u4E09\u70B9(3P)/\u4E24\u70B9(2P)/\u5207\u70B9\u3001\u5207\u70B9\u3001\u534A\u5F84(T)]:`
1536
- ), B.setKeyWords("3P 2P T"), B.goWhile(
1784
+ ), E.setKeyWords("3P 2P T"), E.goWhile(
1537
1785
  (n) => {
1538
- if (n === h.kKeyWord && (B.isKeyWordPicked("3P") ? E = "3P" : B.isKeyWordPicked("2P") ? E = "2P" : B.isKeyWordPicked("T") && (E = "T")), e(n))
1786
+ if (n === g.kKeyWord && (E.isKeyWordPicked("3P") ? B = "3P" : E.isKeyWordPicked("2P") ? B = "2P" : E.isKeyWordPicked("T") && (B = "T")), t(n))
1539
1787
  return { exit: !0 };
1540
1788
  if (r(n))
1541
1789
  return { exit: !0 };
1542
1790
  if (a(n))
1543
1791
  return { exit: !0 };
1544
- if (c(n))
1792
+ if (m(n))
1545
1793
  return { exit: !0 };
1546
1794
  },
1547
1795
  (n) => {
1548
- n === h.kCancel && m.getCurrentDraw().addMxEntity(D);
1796
+ n === g.kCancel && i.App.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius);
1549
1797
  }
1550
1798
  );
1551
1799
  }
1552
- m.addCommand("Mx_Circle", RD);
1553
- const iD = () => rD.state.MxFun.stopRunCommand();
1554
- function J(B, D, C, E) {
1555
- const F = B - C, A = D - E;
1556
- let e = 0;
1557
- return F == 0 ? e = Math.PI / 2 : e = Math.atan(Math.abs(A / F)), F < 0 && A >= 0 ? e = Math.PI - e : F < 0 && A < 0 ? e = Math.PI + e : F >= 0 && A < 0 && (e = Math.PI * 2 - e), e;
1558
- }
1559
- async function vD() {
1560
- const B = new R();
1561
- let D = new z(), C = [];
1562
- B.setMessage(`
1800
+ d.on("init", () => {
1801
+ d.addCommand("Mx_Circle", jD);
1802
+ });
1803
+ const nD = () => oD.state.MxFun.stopRunCommand();
1804
+ function DD(E, D, C, B) {
1805
+ const F = E - C, A = D - B;
1806
+ let t = 0;
1807
+ return F == 0 ? t = Math.PI / 2 : t = Math.atan(Math.abs(A / F)), F < 0 && A >= 0 ? t = Math.PI - t : F < 0 && A < 0 ? t = Math.PI + t : F >= 0 && A < 0 && (t = Math.PI * 2 - t), t;
1808
+ }
1809
+ async function ID() {
1810
+ const E = new M();
1811
+ let D = new $(), C = [];
1812
+ E.setMessage(`
1563
1813
  \u6307\u5B9A\u7B2C\u4E00\u70B9:`);
1564
- let E = await B.go();
1565
- B.setUserDraw((A, e) => {
1566
- C.forEach((t) => {
1567
- e.drawCustomEntity(t);
1568
- }), e.drawLine(E, A);
1814
+ let B = await E.go();
1815
+ E.setUserDraw((A, t) => {
1816
+ C.forEach((e) => {
1817
+ t.drawCustomEntity(e);
1818
+ }), t.drawLine(B, A);
1569
1819
  });
1570
1820
  const F = () => {
1571
- B.setMessage(`
1572
- \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), C.length > 1 ? B.setKeyWords("[\u9000\u51FA(E)/\u95ED\u5408(C)/\u653E\u5F03(U)]") : B.setKeyWords("[\u9000\u51FA(E)/\u653E\u5F03(U)]");
1821
+ E.setMessage(`
1822
+ \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), C.length > 1 ? E.setKeyWords("[\u9000\u51FA(E)/\u95ED\u5408(C)/\u653E\u5F03(U)]") : E.setKeyWords("[\u9000\u51FA(E)/\u653E\u5F03(U)]");
1573
1823
  };
1574
- F(), B.goWhile(
1824
+ F(), E.goWhile(
1575
1825
  (A) => {
1576
- if (A === h.kOk && (D = new z(), P.use(D), D.pt1 = E, D.pt2 = B.value(), E = D.pt2.clone(), C.push(D), F()), A === h.kKeyWord) {
1577
- if (B.isKeyWordPicked("E"))
1578
- iD();
1579
- else if (B.isKeyWordPicked("C")) {
1580
- const e = new z();
1581
- return e.pt1 = E.clone(), e.pt2 = C[0].pt1.clone(), P.use(e), C.push(e), E = e.pt2.clone(), iD(), { exit: !0 };
1826
+ if (A === g.kOk && (D = new $(), L.use(D), D.pt1 = B, D.pt2 = E.value(), B = D.pt2.clone(), C.push(D), F()), A === g.kKeyWord) {
1827
+ if (E.isKeyWordPicked("E"))
1828
+ nD();
1829
+ else if (E.isKeyWordPicked("C")) {
1830
+ const t = new $();
1831
+ return t.pt1 = B.clone(), t.pt2 = C[0].pt1.clone(), L.use(t), C.push(t), B = t.pt2.clone(), nD(), { exit: !0 };
1582
1832
  }
1583
1833
  }
1584
1834
  },
1585
- (A) => (A === h.kCancel && C.forEach((e) => {
1586
- m.getCurrentDraw().addMxEntity(e);
1835
+ (A) => (A === g.kCancel && C.forEach((t) => {
1836
+ i.App.GetCurrentMxCAD().DrawLine(t.pt1.x, t.pt1.y, 0, t.pt2.x, t.pt2.y, 0);
1587
1837
  }), { exit: !0 })
1588
1838
  );
1589
1839
  }
1590
- async function tC() {
1840
+ async function lC() {
1591
1841
  {
1592
- const B = new R();
1593
- B.setMessage(`
1842
+ const E = new M();
1843
+ E.setMessage(`
1594
1844
  \u6307\u5B9A\u4E00\u70B9:`);
1595
- let D = await B.go();
1845
+ let D = await E.go();
1596
1846
  if (!D)
1597
1847
  return;
1598
- let C = new H(), E = new _();
1599
- E.textString = "\u6D4B\u8BD5Test", E.height = m.viewCoordLong2Cad(100), C.startPoint = s.NewMcGePoint3d(D), B.setUserDraw((A, e) => {
1600
- C.endPoint = s.NewMcGePoint3d(A), E.position = s.NewMcGePoint3d(A), E.alignmentPoint = E.position, e.drawMcDbEntity(C), e.drawMcDbEntity(E);
1601
- }), B.setMessage(`
1602
- \u6307\u5B9A\u4E8C\u70B9:`), await B.go();
1603
- let F = s.App.GetCurrentMxCAD();
1604
- F.DrawEntity(E), F.DrawEntity(C);
1605
- }
1606
- }
1607
- async function iC() {
1608
- let B = new hD();
1609
- B.allSelect();
1610
- let D = B.count(), C = 0;
1848
+ let C = new J(), B = new Q();
1849
+ B.textString = "\u6D4B\u8BD5Test", B.height = d.viewCoordLong2Cad(100), C.startPoint = i.NewMcGePoint3d(D), E.setUserDraw((A, t) => {
1850
+ C.endPoint = i.NewMcGePoint3d(A), B.position = i.NewMcGePoint3d(A), B.alignmentPoint = B.position, t.drawMcDbEntity(C), t.drawMcDbEntity(B);
1851
+ }), E.setMessage(`
1852
+ \u6307\u5B9A\u4E8C\u70B9:`), await E.go();
1853
+ let F = i.App.GetCurrentMxCAD();
1854
+ F.DrawEntity(B), F.DrawEntity(C);
1855
+ }
1856
+ }
1857
+ async function cC() {
1858
+ let E = new RD();
1859
+ E.allSelect();
1860
+ let D = E.count(), C = 0;
1611
1861
  for (; C < D; C++) {
1612
- let E = B.item(C), F = E.getObjectName();
1862
+ let B = E.item(C), F = B.getObjectName();
1613
1863
  if (F == "McDbAlignedDimension" || F == "McDbRotatedDimension") {
1614
- let e = E.getMcDbObject().explode();
1615
- if (e.GetCount() == 0)
1864
+ let t = B.getMcDbObject().explode();
1865
+ if (t.GetCount() == 0)
1616
1866
  return;
1617
- let t = e.GetCount();
1618
- for (let r = 0; r < t; r++) {
1619
- let i = e.AtObject(r).val;
1620
- i?.ObjectName == "McDbMText" && console.log(i.contents);
1867
+ let e = t.GetCount();
1868
+ for (let r = 0; r < e; r++) {
1869
+ let s = t.AtObject(r).val;
1870
+ s?.ObjectName == "McDbMText" && console.log(s.contents);
1621
1871
  }
1622
1872
  }
1623
1873
  }
1624
1874
  }
1625
- m.addCommand("Mx_Line", vD);
1626
- m.addCommand("Mx_TestDraw", tC);
1627
- m.addCommand("Mx_Test_GetDim", iC);
1628
- async function rC() {
1629
- const B = new R();
1630
- B.setMessage(`
1875
+ d.on("init", () => {
1876
+ d.addCommand("Mx_Line", ID), d.addCommand("Mx_TestDraw", lC), d.addCommand("Mx_Test_GetDim", cC);
1877
+ });
1878
+ async function mC() {
1879
+ const E = new M();
1880
+ E.setMessage(`
1631
1881
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
1632
- let D = await B.go();
1882
+ let D = await E.go();
1633
1883
  if (D == null)
1634
1884
  return;
1635
1885
  let C = `\u6D4B\u8BD5
1636
1886
  \u6D4B\u8BD5`;
1637
1887
  if (C.length <= 0)
1638
1888
  return;
1639
- let E = m.screenCoordLong2Doc(50);
1640
- C = V.b64Encode(C);
1889
+ let B = d.screenCoordLong2Doc(50);
1890
+ C = H.b64Encode(C);
1641
1891
  const F = {
1642
1892
  postx: D.x,
1643
1893
  posty: D.y,
1644
1894
  text: C,
1645
- height: E
1895
+ height: B
1646
1896
  };
1647
- m.call("Mx_MText", F);
1897
+ d.call("Mx_MText", F);
1648
1898
  }
1649
- async function LD() {
1650
- const B = new R(), D = new zD();
1651
- P.use(D), B.setMessage(`
1899
+ async function GD() {
1900
+ const E = new M(), D = new QD();
1901
+ L.use(D), E.setMessage(`
1652
1902
  \u6307\u5B9A\u8D77\u70B9:`);
1653
1903
  let C;
1654
- B.setUserDraw((E, F) => {
1655
- F.drawCustomEntity(D), C && F.drawLine(C, E);
1656
- }), B.goWhile(
1657
- (E) => {
1658
- if (E === h.kOk) {
1659
- const F = B.value();
1660
- D.points.push(B.value()), C = F, B.setMessage(`
1661
- \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), B.setKeyWords("[\u5706\u5F27(A)/\u5BBD\u5EA6(W)]");
1904
+ E.setUserDraw((B, F) => {
1905
+ F.drawCustomEntity(D), C && F.drawLine(C, B);
1906
+ }), E.goWhile(
1907
+ (B) => {
1908
+ if (B === g.kOk) {
1909
+ const F = E.value();
1910
+ D.points.push(E.value()), C = F, E.setMessage(`
1911
+ \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), E.setKeyWords("[\u5706\u5F27(A)/\u5BBD\u5EA6(W)]");
1662
1912
  } else
1663
- E === h.kKeyWord && (B.isKeyWordPicked("A"), B.isKeyWordPicked("W"));
1913
+ B === g.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
1664
1914
  },
1665
- (E) => {
1666
- E === h.kCancel && m.getCurrentDraw().addMxEntity(D);
1915
+ (B) => {
1916
+ if (B === g.kCancel) {
1917
+ let F = i.App.GetCurrentMxCAD();
1918
+ for (let A = 0; A < D.points.length; A++)
1919
+ A == 0 ? F.PathMoveTo(D.points[A].x, D.points[A].y) : F.PathLineTo(D.points[A].x, D.points[A].y);
1920
+ F.DrawPathToPolyline();
1921
+ }
1667
1922
  }
1668
1923
  );
1669
1924
  }
1670
- m.addCommand("Mx_Pline", LD);
1671
- async function SD() {
1672
- const B = new R();
1673
- B.setMessage(`
1925
+ d.on("init", () => {
1926
+ d.addCommand("Mx_Pline", GD);
1927
+ });
1928
+ async function WD() {
1929
+ const E = new M();
1930
+ E.setMessage(`
1674
1931
  \u6307\u5B9A\u4E00\u70B9:`);
1675
- let D = await B.go(), C = new CD();
1932
+ let D = await E.go(), C = new AD();
1676
1933
  C.setCenter(D.x, D.y, D.z);
1677
- let E = 5;
1678
- B.setUserDraw((F, A) => {
1934
+ let B = 5;
1935
+ E.setUserDraw((F, A) => {
1679
1936
  C.radius = D.distanceTo(F);
1680
- let e = C.getEndParam().val, r = C.getDistAtParam(e).val / E, i = 0, o = new THREE.Vector3(), a = new THREE.Vector3();
1681
- for (let c = 0; c < E; c++) {
1682
- let n = C.getPointAtDist(i).val;
1683
- i += r, c > 0 ? A.drawMcDbLine(n.x, n.y, n.z, o.x, o.y, o.z) : a = new THREE.Vector3(n.x, n.y, n.z), c == E - 1 && A.drawMcDbLine(n.x, n.y, n.z, a.x, a.y, a.z), o = new THREE.Vector3(n.x, n.y, n.z);
1937
+ let t = C.getEndParam().val, r = C.getDistAtParam(t).val / B, s = 0, o = new THREE.Vector3(), a = new THREE.Vector3();
1938
+ for (let m = 0; m < B; m++) {
1939
+ let n = C.getPointAtDist(s).val;
1940
+ s += r, m > 0 ? A.drawMcDbLine(n.x, n.y, n.z, o.x, o.y, o.z) : a = new THREE.Vector3(n.x, n.y, n.z), m == B - 1 && A.drawMcDbLine(n.x, n.y, n.z, a.x, a.y, a.z), o = new THREE.Vector3(n.x, n.y, n.z);
1684
1941
  }
1685
- }), B.setMessage(`
1686
- \u6307\u5B9A\u4E8C\u70B9:`), await B.go(), B.drawReserve();
1942
+ }), E.setMessage(`
1943
+ \u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
1687
1944
  }
1688
- m.addCommand("Mx_Polygon", SD);
1689
- function sC(B, D, C) {
1690
- const E = B.x, F = D.x, A = C.x, e = B.y, t = D.y, r = C.y, i = E - F, o = e - t, a = E - A, c = e - r, n = (E * E - F * F + (e * e - t * t)) / 2, u = (E * E - A * A + (e * e - r * r)) / 2, p = o * a - i * c, d = -(c * n - o * u) / p, l = -(i * u - a * n) / p;
1691
- return new THREE.Vector3(d, l, 0);
1945
+ d.addCommand("Mx_Polygon", WD);
1946
+ function pC(E, D, C) {
1947
+ const B = E.x, F = D.x, A = C.x, t = E.y, e = D.y, r = C.y, s = B - F, o = t - e, a = B - A, m = t - r, n = (B * B - F * F + (t * t - e * e)) / 2, u = (B * B - A * A + (t * t - r * r)) / 2, h = o * a - s * m, w = -(m * n - o * u) / h, l = -(s * u - a * n) / h;
1948
+ return new THREE.Vector3(w, l, 0);
1692
1949
  }
1693
- function nC(B, D) {
1694
- const C = B.x, E = B.y, F = D.x, A = D.y;
1695
- return Math.sqrt((C - F) * (C - F) + (E - A) * (E - A));
1950
+ function dC(E, D) {
1951
+ const C = E.x, B = E.y, F = D.x, A = D.y;
1952
+ return Math.sqrt((C - F) * (C - F) + (B - A) * (B - A));
1696
1953
  }
1697
- function oC(B, D, C) {
1698
- let E;
1699
- B < C ? E = C - B : E = C - B + 360;
1954
+ function hC(E, D, C) {
1955
+ let B;
1956
+ E < C ? B = C - E : B = C - E + 360;
1700
1957
  let F;
1701
- return B < D ? F = D - B : F = D - B + 360, F > E;
1958
+ return E < D ? F = D - E : F = D - E + 360, F > B;
1702
1959
  }
1703
- function Y(B, D, C) {
1704
- const E = B.x, F = D.x, A = B.y, e = D.y;
1705
- let t, r, i;
1706
- return t = (A - e) / C, r = (E - F) / C, r >= 0.99999 && (r = 0.99999), r <= -0.99999 && (r = -0.99999), i = Math.acos(r), i = i / Math.PI * 180, t < -0.05 && (i = 360 - i), {
1707
- sin: t,
1960
+ function CD(E, D, C) {
1961
+ const B = E.x, F = D.x, A = E.y, t = D.y;
1962
+ let e, r, s;
1963
+ return e = (A - t) / C, r = (B - F) / C, r >= 0.99999 && (r = 0.99999), r <= -0.99999 && (r = -0.99999), s = Math.acos(r), s = s / Math.PI * 180, e < -0.05 && (s = 360 - s), {
1964
+ sin: e,
1708
1965
  cos: r,
1709
- angle: i
1966
+ angle: s
1710
1967
  };
1711
1968
  }
1712
- const K = VD.MrxDbgUiPrBaseReturn, b = (B, D, C) => {
1713
- const E = () => {
1714
- B.go((F) => {
1715
- if (F === K.kKeyWord && C() && E(), F === K.kOk && D() && E(), F === K.kNone && E(), F === K.kCancel)
1969
+ const q = _D.MrxDbgUiPrBaseReturn, b = (E, D, C) => {
1970
+ const B = () => {
1971
+ E.go((F) => {
1972
+ if (F === q.kKeyWord && C() && B(), F === q.kOk && D() && B(), F === q.kNone && B(), F === q.kCancel)
1716
1973
  return { exit: !0 };
1717
1974
  });
1718
1975
  };
1719
- return E;
1976
+ return B;
1720
1977
  };
1721
- class eD extends sD {
1978
+ class rD extends aD {
1722
1979
  constructor() {
1723
1980
  super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
1724
1981
  }
@@ -1726,24 +1983,24 @@ class eD extends sD {
1726
1983
  return "MxDbCircle";
1727
1984
  }
1728
1985
  create() {
1729
- return new eD();
1986
+ return new rD();
1730
1987
  }
1731
- getArcBulge(D, C, E) {
1988
+ getArcBulge(D, C, B) {
1732
1989
  const F = D.distanceTo(C);
1733
- let t = 2 * new THREE.Line3(D, C).getCenter(
1990
+ let e = 2 * new THREE.Line3(D, C).getCenter(
1734
1991
  new THREE.Vector3()
1735
- ).distanceTo(E) / F;
1736
- return t > 0.9999 && t < 1.0001 ? t = 1 : t < -0.9999 && t > -1.0001 ? t = -1 : Math.abs(t) < 1e-10 && (t = 0), t;
1992
+ ).distanceTo(B) / F;
1993
+ return e > 0.9999 && e < 1.0001 ? e = 1 : e < -0.9999 && e > -1.0001 ? e = -1 : Math.abs(e) < 1e-10 && (e = 0), e;
1737
1994
  }
1738
- getArcMidPoint(D, C, E, F, A) {
1739
- const e = D, t = E * Math.PI / 180;
1995
+ getArcMidPoint(D, C, B, F, A) {
1996
+ const t = D, e = B * Math.PI / 180;
1740
1997
  let r = F * Math.PI / 180;
1741
- const i = new THREE.Vector3(), o = new THREE.Vector3();
1742
- i.x = e.x + C * Math.cos(t), i.y = e.y + C * Math.sin(t), o.x = e.x + C * Math.cos(r), o.y = e.y + C * Math.sin(r);
1998
+ const s = new THREE.Vector3(), o = new THREE.Vector3();
1999
+ s.x = t.x + C * Math.cos(e), s.y = t.y + C * Math.sin(e), o.x = t.x + C * Math.cos(r), o.y = t.y + C * Math.sin(r);
1743
2000
  const a = C;
1744
- (A ? E < F : E > F) && (r += Math.PI * 2);
1745
- const c = new THREE.Vector3();
1746
- return c.x = e.x + a * Math.cos((t + r) / 2), c.y = e.y + a * Math.sin((t + r) / 2), [i, c, o, this.center];
2001
+ (A ? B < F : B > F) && (r += Math.PI * 2);
2002
+ const m = new THREE.Vector3();
2003
+ return m.x = t.x + a * Math.cos((e + r) / 2), m.y = t.y + a * Math.sin((e + r) / 2), [s, m, o, this.center];
1747
2004
  }
1748
2005
  getGripPoints() {
1749
2006
  return this.getArcMidPoint(
@@ -1757,98 +2014,98 @@ class eD extends sD {
1757
2014
  moveGripPointsAt(D, C) {
1758
2015
  if (D === 3)
1759
2016
  return this.center.add(C), !0;
1760
- const E = this.getGripPoints();
1761
- return this.upDatePoints(E, D, C), !0;
1762
- }
1763
- upDatePoints(D, C, E) {
1764
- D[C].add(E);
1765
- const [F, A, e] = D;
1766
- this.center = sC(F, e, A), this.radius = nC(A, this.center);
1767
- const t = Y(F, this.center, this.radius), r = Y(e, this.center, this.radius), i = Y(A, this.center, this.radius);
1768
- this.clockwise = oC(
2017
+ const B = this.getGripPoints();
2018
+ return this.upDatePoints(B, D, C), !0;
2019
+ }
2020
+ upDatePoints(D, C, B) {
2021
+ D[C].add(B);
2022
+ const [F, A, t] = D;
2023
+ this.center = pC(F, t, A), this.radius = dC(A, this.center);
2024
+ const e = CD(F, this.center, this.radius), r = CD(t, this.center, this.radius), s = CD(A, this.center, this.radius);
2025
+ this.clockwise = hC(
1769
2026
  r.angle,
1770
- t.angle,
1771
- i.angle
1772
- ), this.startAngle = THREE.MathUtils.degToRad(t.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
1773
- }
1774
- }
1775
- async function OD() {
1776
- const B = new R();
1777
- B.setMessage(`
1778
- \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), B.setKeyWords("[\u5706\u5FC3(C)]");
1779
- let D = new eD();
1780
- D.closed = !1, P.use(D);
1781
- let C, E, F;
2027
+ e.angle,
2028
+ s.angle
2029
+ ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2030
+ }
2031
+ }
2032
+ async function UD() {
2033
+ const E = new M();
2034
+ E.setMessage(`
2035
+ \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), E.setKeyWords("[\u5706\u5FC3(C)]");
2036
+ let D = new rD();
2037
+ D.closed = !1, L.use(D);
2038
+ let C, B, F;
1782
2039
  const A = b(
1783
- B,
2040
+ E,
1784
2041
  () => {
1785
- C = B.value(), B.setMessage(`
1786
- \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), B.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), B.setUserDraw((d, l) => {
1787
- l.drawLine(C, d);
2042
+ C = E.value(), E.setMessage(`
2043
+ \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), E.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), E.setUserDraw((l, c) => {
2044
+ c.drawLine(C, l);
1788
2045
  }), u();
1789
2046
  },
1790
2047
  () => {
1791
- if (B.isKeyWordPicked("C")) {
1792
- const d = new N();
1793
- D.center = B.value(), d.center = B.value(), B.setMessage(`
1794
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), B.setKeyWords(""), t();
2048
+ if (E.isKeyWordPicked("C")) {
2049
+ const l = new _();
2050
+ D.center = E.value(), l.center = E.value(), E.setMessage(`
2051
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), E.setKeyWords(""), e();
1795
2052
  } else
1796
2053
  return !0;
1797
2054
  }
1798
2055
  );
1799
- let e;
1800
- const t = b(
1801
- B,
2056
+ let t;
2057
+ const e = b(
2058
+ E,
1802
2059
  () => {
1803
- e = B.value(), F = new N(), F.closed = !1, P.use(F), F.center = e, D.center = e, B.setMessage(`
1804
- \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), B.setUserDraw((d, l) => {
1805
- l.drawCustomEntity(F), l.drawLine(e, d);
2060
+ t = E.value(), F = new _(), F.closed = !1, L.use(F), F.center = t, D.center = t, E.setMessage(`
2061
+ \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), E.setUserDraw((l, c) => {
2062
+ c.drawCustomEntity(F), c.drawLine(t, l);
1806
2063
  }), o();
1807
2064
  },
1808
2065
  () => {
1809
2066
  }
1810
2067
  );
1811
- let r, i;
2068
+ let r, s;
1812
2069
  const o = b(
1813
- B,
2070
+ E,
1814
2071
  () => {
1815
- r = B.value(), F.endPoint = r, B.setMessage(
2072
+ r = E.value(), F.endPoint = r, E.setMessage(
1816
2073
  `
1817
2074
  \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u89D2\u5EA6(A)/\u5F26\u957F(L)/\u4FEE\u6539\u534A\u5F84(R)]:`
1818
- ), B.setKeyWords("A L R"), i = new z(), i.setDashLineDisplay(!0), i.setDashArray(0.05), i.setLineWidth(2), i.setColor("#ffd30d"), i.pt1 = F.center, B.setUserDraw((d, l) => {
1819
- F.startPoint = d, i.pt2 = d, l.drawCustomEntity(F), l.drawCustomEntity(i);
1820
- }), c();
2075
+ ), E.setKeyWords("A L R"), s = new $(), s.setDashLineDisplay(!0), s.setDashArray(0.05), s.setLineWidth(2), s.setColor("#ffd30d"), s.pt1 = F.center, E.setUserDraw((l, c) => {
2076
+ F.startPoint = l, s.pt2 = l, c.drawCustomEntity(F), c.drawCustomEntity(s);
2077
+ }), m();
1821
2078
  },
1822
2079
  () => {
1823
2080
  }
1824
2081
  );
1825
2082
  let a;
1826
- const c = b(
1827
- B,
2083
+ const m = b(
2084
+ E,
1828
2085
  () => {
1829
- a = B.value(), F.startPoint = a, F.endPoint = r, m.getCurrentDraw().addMxEntity(F);
2086
+ a = E.value(), F.startPoint = a, F.endPoint = r, d.getCurrentDraw().addMxEntity(F);
1830
2087
  },
1831
2088
  () => {
1832
- if (B.isKeyWordPicked("A"))
1833
- return B.setMessage(
2089
+ if (E.isKeyWordPicked("A"))
2090
+ return E.setMessage(
1834
2091
  `
1835
2092
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
1836
- ), B.setKeyWords("R"), B.setUserDraw((d, l) => {
1837
- F.startPoint = d, l.drawCustomEntity(F), l.drawCustomEntity(i);
2093
+ ), E.setKeyWords("R"), E.setUserDraw((l, c) => {
2094
+ F.startPoint = l, c.drawCustomEntity(F), c.drawCustomEntity(s);
1838
2095
  }), !0;
1839
- if (B.isKeyWordPicked("L"))
1840
- return B.setMessage(
2096
+ if (E.isKeyWordPicked("L"))
2097
+ return E.setMessage(
1841
2098
  `
1842
2099
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
1843
- ), B.setKeyWords("R"), B.setUserDraw((d, l) => {
1844
- F.startPoint = d, l.drawCustomEntity(F), l.drawCustomEntity(i);
2100
+ ), E.setKeyWords("R"), E.setUserDraw((l, c) => {
2101
+ F.startPoint = l, c.drawCustomEntity(F), c.drawCustomEntity(s);
1845
2102
  }), !0;
1846
- if (B.isKeyWordPicked("R"))
1847
- B.setMessage(
2103
+ if (E.isKeyWordPicked("R"))
2104
+ E.setMessage(
1848
2105
  `
1849
2106
  \u6307\u5B9A\u5706\u5F27\u7684\u534A\u5F84${F.radius ? "<" + F.radius + ">" : ""}:`
1850
- ), B.setKeyWords(""), B.setUserDraw((d, l) => {
1851
- l.drawLine(d, F.center), F.startPoint = d, l.drawCustomEntity(F);
2107
+ ), E.setKeyWords(""), E.setUserDraw((l, c) => {
2108
+ c.drawLine(l, F.center), F.startPoint = l, c.drawCustomEntity(F);
1852
2109
  }), o();
1853
2110
  else
1854
2111
  return !0;
@@ -1856,36 +2113,38 @@ async function OD() {
1856
2113
  );
1857
2114
  let n;
1858
2115
  const u = b(
1859
- B,
2116
+ E,
1860
2117
  () => {
1861
- n = B.value(), B.setMessage(`
1862
- \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), E = new HD(), E.autoClockwise = !0, E.closed = !1, P.use(E), E.point1 = C, E.point3 = n, D.center, B.setUserDraw((d, l) => {
1863
- E.point2 = d, l.drawCustomEntity(D);
1864
- }), p();
2118
+ n = E.value(), E.setMessage(`
2119
+ \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), B = new ZD(), B.autoClockwise = !0, B.closed = !1, L.use(B), B.point1 = C, B.point3 = n, E.setUserDraw((l, c) => {
2120
+ B.point2 = l, c.drawCustomEntity(B);
2121
+ }), w();
1865
2122
  },
1866
2123
  () => {
1867
- if (B.isKeyWordPicked("C"))
1868
- F = new N(), F.closed = !1, P.use(F), B.setMessage(`
1869
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), B.setKeyWords(""), B.setUserDraw((d, l) => {
1870
- F.startPoint = C, l.drawLine(d, F.startPoint);
1871
- }), t();
1872
- else if (B.isKeyWordPicked("E"))
1873
- F = new N(), F.closed = !1, P.use(F), B.setMessage(`
1874
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), B.setKeyWords(""), B.setUserDraw((d, l) => {
1875
- F.startPoint = C, l.drawLine(d, F.startPoint);
1876
- }), t();
2124
+ if (E.isKeyWordPicked("C"))
2125
+ F = new _(), F.closed = !1, L.use(F), E.setMessage(`
2126
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), E.setKeyWords(""), E.setUserDraw((l, c) => {
2127
+ F.startPoint = C, c.drawLine(l, F.startPoint);
2128
+ }), e();
2129
+ else if (E.isKeyWordPicked("E"))
2130
+ F = new _(), F.closed = !1, L.use(F), E.setMessage(`
2131
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), E.setKeyWords(""), E.setUserDraw((l, c) => {
2132
+ F.startPoint = C, c.drawLine(l, F.startPoint);
2133
+ }), e();
1877
2134
  else
1878
2135
  return !0;
1879
2136
  }
1880
- ), p = b(
1881
- B,
2137
+ );
2138
+ let h = i.App.GetCurrentMxCAD();
2139
+ const w = b(
2140
+ E,
1882
2141
  () => {
1883
- E.point1 = C, E.point2 = B.value(), E.point3 = n, m.getCurrentDraw().addMxEntity(E);
2142
+ B.point1 = C, B.point2 = E.value(), B.point3 = n, h.DrawArc2(B.point1.x, B.point1.y, B.point3.x, B.point3.y, B.point2.x, B.point2.y);
1884
2143
  },
1885
2144
  () => {
1886
- if (B.isKeyWordPicked("C"))
2145
+ if (E.isKeyWordPicked("C"))
1887
2146
  console.log("C");
1888
- else if (B.isKeyWordPicked("E"))
2147
+ else if (E.isKeyWordPicked("E"))
1889
2148
  console.log("E");
1890
2149
  else
1891
2150
  return !0;
@@ -1893,262 +2152,290 @@ async function OD() {
1893
2152
  );
1894
2153
  A();
1895
2154
  }
1896
- m.addCommand("Mx_Arc", OD);
1897
- function jD() {
1898
- const B = new R(), D = new _D();
1899
- D.closed = !1, P.use(D), B.setMessage(`
1900
- \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), B.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
1901
- let C, E = new THREE.Vector3();
2155
+ d.on("init", () => {
2156
+ d.addCommand("Mx_Arc", UD);
2157
+ });
2158
+ function zD() {
2159
+ const E = new M(), D = new YD();
2160
+ D.closed = !1, L.use(D), E.setMessage(`
2161
+ \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
2162
+ let C, B = new THREE.Vector3();
1902
2163
  b(
1903
- B,
2164
+ E,
1904
2165
  () => {
1905
- C = B.value(), B.setUserDraw((i, o) => {
1906
- const a = new THREE.Line3(C, i);
1907
- a.getCenter(E), D.center = E, D.xRadius = a.distance() / 2, D.yRadius = D.xRadius, D.rotation = J(i.x, i.y, E.x, E.y), o.drawLine(i, C);
1908
- }), B.setMessage(`
1909
- \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), B.setKeyWords(""), A();
2166
+ C = E.value(), E.setUserDraw((s, o) => {
2167
+ const a = new THREE.Line3(C, s);
2168
+ a.getCenter(B), D.center = B, D.xRadius = a.distance() / 2, D.yRadius = D.xRadius, D.rotation = DD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2169
+ }), E.setMessage(`
2170
+ \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
1910
2171
  },
1911
2172
  () => {
1912
2173
  }
1913
2174
  )();
1914
2175
  const A = b(
1915
- B,
2176
+ E,
1916
2177
  () => {
1917
- B.setUserDraw((i, o) => {
1918
- D.yRadius = E.distanceTo(i), o.drawLine(E, i), o.drawCustomEntity(D);
1919
- }), B.setMessage(`
1920
- \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), B.setKeyWords(""), e();
2178
+ E.setUserDraw((s, o) => {
2179
+ D.yRadius = B.distanceTo(s), o.drawLine(B, s), o.drawCustomEntity(D);
2180
+ }), E.setMessage(`
2181
+ \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), t();
1921
2182
  },
1922
2183
  () => {
1923
2184
  }
1924
- ), e = b(
1925
- B,
2185
+ ), t = b(
2186
+ E,
1926
2187
  () => {
1927
- B.setMessage(`
1928
- \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), B.setKeyWords(""), B.setUserDraw((i, o) => {
1929
- D.startAngle = J(i.x, i.y, E.x, E.y) - D.rotation, o.drawLine(E, i), o.drawCustomEntity(D);
1930
- }), t();
2188
+ E.setMessage(`
2189
+ \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, o) => {
2190
+ D.startAngle = DD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2191
+ }), e();
1931
2192
  },
1932
2193
  () => {
1933
2194
  }
1934
- ), t = b(
1935
- B,
2195
+ ), e = b(
2196
+ E,
1936
2197
  () => {
1937
- B.setUserDraw((i, o) => {
1938
- D.endAngle = J(i.x, i.y, E.x, E.y) - D.rotation, o.drawLine(E, i), o.drawCustomEntity(D);
1939
- }), B.setMessage(`
1940
- \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), B.setKeyWords(""), r();
2198
+ E.setUserDraw((s, o) => {
2199
+ D.endAngle = DD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2200
+ }), E.setMessage(`
2201
+ \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), r();
1941
2202
  },
1942
2203
  () => {
1943
2204
  }
1944
2205
  ), r = b(
1945
- B,
2206
+ E,
1946
2207
  () => {
1947
- m.getCurrentDraw().addMxEntity(D);
2208
+ d.getCurrentDraw().addMxEntity(D);
1948
2209
  },
1949
2210
  () => {
1950
2211
  }
1951
2212
  );
1952
2213
  }
1953
- m.addCommand("Mx_EllipseArc", jD);
1954
- async function GD() {
1955
- (await ED.selectEnt(`
2214
+ function wC() {
2215
+ const E = new M(), D = new XD(), C = new DC();
2216
+ E.setMessage(`
2217
+ \u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2218
+ C.point1 = E.value(), D.setDraw((B) => {
2219
+ C.point2 = B, D.drawCustomEntity(C);
2220
+ }), E.setUserDraw(D), E.setMessage(`
2221
+ \u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2222
+ i.App.GetCurrentMxCAD().DrawEllipse(C.center.x, C.center.y, C.xRadius, 0, C.yRadius / C.xRadius);
2223
+ });
2224
+ });
2225
+ }
2226
+ d.on("init", () => {
2227
+ d.addCommand("Mx_EllipseArc", zD), d.addCommand("Mx_Ellipse", wC);
2228
+ });
2229
+ async function VD() {
2230
+ (await eD.selectEnt(`
1956
2231
  \u9009\u62E9\u5220\u9664\u5BF9\u8C61`)).forEach((D) => {
1957
2232
  D.erase();
1958
2233
  });
1959
2234
  }
1960
- m.addCommand("Mx_Erase", GD);
1961
- const aC = async (B, D, C) => {
1962
- const { locateFile: E } = C, F = E(B + ".js");
1963
- return await wD(F), await globalThis[D](C);
2235
+ d.addCommand("Mx_Erase", VD);
2236
+ const gC = async (E, D, C) => {
2237
+ const { locateFile: B } = C, F = B(E + ".js");
2238
+ return await vD(F), await globalThis[D](C);
1964
2239
  };
1965
- function uC(B) {
1966
- return typeof ResizeObserver == "function" ? new ResizeObserver(B) : null;
2240
+ function yC(E) {
2241
+ return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
1967
2242
  }
1968
- function lC(B, D) {
2243
+ function xC(E, D) {
1969
2244
  const C = () => requestAnimationFrame(D);
1970
- let E = uC(C);
1971
- if (E) {
1972
- E.observe(B);
2245
+ let B = yC(C);
2246
+ if (B) {
2247
+ B.observe(E);
1973
2248
  return;
1974
2249
  }
1975
2250
  if (MutationObserver) {
1976
- new MutationObserver(C).observe(B, { attributes: !0 });
2251
+ new MutationObserver(C).observe(E, { attributes: !0 });
1977
2252
  return;
1978
2253
  }
1979
2254
  }
1980
- function cC(B, D) {
2255
+ function bC(E, D) {
1981
2256
  let C = null;
1982
- return function(...E) {
2257
+ return function(...B) {
1983
2258
  C || (C = setTimeout(() => {
1984
- B.apply(this, E), C = null;
2259
+ E.apply(this, B), C = null;
1985
2260
  }, D));
1986
2261
  };
1987
2262
  }
1988
- class G {
2263
+ class U {
1989
2264
  static onloadWasmMxDraw3dModel;
1990
2265
  canvas;
1991
2266
  constructor(D) {
1992
2267
  const C = () => {
1993
- const a = this.canvas.parentElement?.clientWidth || window.innerWidth, c = this.canvas.parentElement?.clientHeight || window.innerHeight;
1994
- let n = Math.min(a, window.screen.availWidth), u = Math.min(c, window.screen.availHeight);
1995
- n = Math.max(A, n), u = Math.max(e, u), this.canvas.style.width = n + 1 + "px", this.canvas.style.height = u + "px";
1996
- const p = window.devicePixelRatio || 1;
1997
- this.canvas.width = n * p, this.canvas.height = u * p;
1998
- }, E = cC(C, 50), {
2268
+ const a = this.canvas.parentElement?.clientWidth || window.innerWidth, m = this.canvas.parentElement?.clientHeight || window.innerHeight;
2269
+ let n = Math.min(a, window.screen.availWidth), u = Math.min(m, window.screen.availHeight);
2270
+ n = Math.max(A, n), u = Math.max(t, u), this.canvas.style.width = n + 1 + "px", this.canvas.style.height = u + "px";
2271
+ const h = window.devicePixelRatio || 1;
2272
+ this.canvas.width = n * h, this.canvas.height = u * h;
2273
+ }, B = bC(C, 50), {
1999
2274
  canvas: F,
2000
2275
  minWidth: A = 300,
2001
- minHeight: e = 300,
2002
- updateCanvasSize: t = E,
2276
+ minHeight: t = 300,
2277
+ updateCanvasSize: e = B,
2003
2278
  ...r
2004
2279
  } = D;
2005
- let i = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = i.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
2006
- o == null && (o = i.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = i, this.ctx = o, r.canvas = this.canvas;
2280
+ let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
2281
+ o == null && (o = s.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = s, this.ctx = o, r.canvas = this.canvas;
2007
2282
  for (let a in r)
2008
2283
  this[a] = r[a];
2009
2284
  if (this.canvas instanceof HTMLCanvasElement) {
2010
2285
  const a = this.canvas.parentElement || document.body;
2011
- lC(a, t);
2286
+ xC(a, e);
2012
2287
  } else
2013
2288
  console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
2014
- window.onresize = C, C(), aC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2015
- G.onloadWasmMxDraw3dModel && G.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = t, this.open3DFile = (a) => {
2016
- const c = new FileReader();
2017
- c.onload = () => {
2018
- if (!!c.result && c.result instanceof ArrayBuffer) {
2019
- var n = new Uint8Array(c.result);
2289
+ window.onresize = C, C(), gC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2290
+ U.onloadWasmMxDraw3dModel && U.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (a) => {
2291
+ const m = new FileReader();
2292
+ m.onload = () => {
2293
+ if (!!m.result && m.result instanceof ArrayBuffer) {
2294
+ var n = new Uint8Array(m.result);
2020
2295
  const u = this._malloc(n.length);
2021
2296
  this.HEAPU8.set(n, u), this.openFromMemory(a.name, u, n.length, !0), this.displayGround(!0), this.canvas.focus();
2022
2297
  }
2023
- }, c.readAsArrayBuffer(a);
2298
+ }, m.readAsArrayBuffer(a);
2024
2299
  };
2025
2300
  });
2026
2301
  }
2027
2302
  }
2028
- function dC(B, D) {
2029
- return new Promise(async (C, E) => {
2303
+ function fC(E, D) {
2304
+ return new Promise(async (C, B) => {
2030
2305
  try {
2031
- B.locateFile || (B.locateFile = ZD);
2032
- const F = new G(B);
2033
- G.onloadWasmMxDraw3dModel = () => {
2306
+ E.locateFile || (E.locateFile = iC);
2307
+ const F = new U(E);
2308
+ U.onloadWasmMxDraw3dModel = () => {
2034
2309
  C(F), D && D(F);
2035
2310
  };
2036
2311
  } catch (F) {
2037
- E(F);
2312
+ B(F);
2038
2313
  }
2039
2314
  });
2040
2315
  }
2041
- const pC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2316
+ const TC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2042
2317
  __proto__: null,
2043
- b64Encode: nD,
2044
- b64Decode: oD,
2045
- saveAsFileDialog: aD,
2046
- downloadFile: uD,
2047
- MxTools: V,
2048
- getFilterImp: W,
2049
- McDrawResbuf: U,
2050
- McDrawUtilityClass: pD,
2051
- McDrawUtility: ED,
2052
- McDrawSelSet: hD,
2053
- McRxObject: L,
2054
- McObjectIdType: y,
2055
- McObjectId: x,
2056
- McDbObject: v,
2318
+ b64Encode: uD,
2319
+ b64Decode: lD,
2320
+ saveAsFileDialog: cD,
2321
+ downloadFile: mD,
2322
+ downloadFileFromUrl: pD,
2323
+ MxTools: H,
2324
+ McGePoint3d: p,
2325
+ McGeVector3d: G,
2326
+ McGeMatrix3d: Z,
2327
+ getFilterImp: V,
2328
+ McDrawResbuf: K,
2329
+ McDrawUtilityClass: kD,
2330
+ McDrawUtility: eD,
2331
+ McDrawSelSet: RD,
2332
+ McRxObject: v,
2333
+ McObjectIdType: x,
2334
+ McObjectId: f,
2335
+ McDbObject: S,
2057
2336
  get McDb() {
2058
- return Z;
2337
+ return BD;
2059
2338
  },
2060
- McDbLayerTableRecord: CC,
2061
- McDbLayerTable: xD,
2062
- McDbLinetypeTable: fD,
2063
- McDbTextStyleTable: MD,
2064
- McDbDatabase: AD,
2065
- McDbBlockTableRecordIterator: TD,
2066
- McDbBlockTableRecord: X,
2067
- McDbBlockTableIterator: kD,
2068
- McDbBlockTable: PD,
2069
- McDbEntity: I,
2070
- McDbCurve: q,
2071
- McDbLine: H,
2072
- McDbText: _,
2073
- McDbMText: DD,
2074
- McDbCircle: CD,
2075
- McDbPolyline: lD,
2076
- McDbBlockReference: cD,
2077
- McDbDimension: BD,
2078
- McDbAlignedDimension: dD,
2079
- McDbRotatedDimension: mD,
2080
- McObject: j,
2081
- McAppType: gD,
2082
- MxCppType: yD,
2339
+ McCmColor: O,
2340
+ McDbLayerTableRecord: FC,
2341
+ McDbLayerTable: dD,
2342
+ McDbLinetypeTable: hD,
2343
+ McDbTextStyleTable: wD,
2344
+ McDbDatabase: ED,
2345
+ McDbBlockTableRecordIterator: gD,
2346
+ McDbBlockTableRecord: Y,
2347
+ McDbBlockTableIterator: yD,
2348
+ McDbBlockTable: xD,
2349
+ McDbEntity: z,
2350
+ McDbCurve: N,
2351
+ McDbLine: J,
2352
+ McDbText: Q,
2353
+ McDbMText: FD,
2354
+ McDbCircle: AD,
2355
+ McDbPolyline: bD,
2356
+ McDbBlockReference: fD,
2357
+ McDbDimension: tD,
2358
+ McDbAlignedDimension: MD,
2359
+ McDbRotatedDimension: TD,
2360
+ McDbArc: PD,
2361
+ McObject: W,
2362
+ McAppType: LD,
2363
+ MxCppType: SD,
2083
2364
  get MxCpp() {
2084
- return s;
2365
+ return i;
2085
2366
  },
2086
- loadMxCADassembly: bD,
2087
- createMxCad: FC,
2088
- drawText: AC,
2089
- drawCircle: RD,
2090
- drawLine: vD,
2091
- drawMText: rC,
2092
- drawPolyLine: LD,
2093
- drawPolygon: SD,
2094
- drawArc: OD,
2095
- drawEllipticalArc: jD,
2096
- mxErase: GD,
2097
- MxDraw3d: G,
2098
- loadMxCADassembly3d: dC
2367
+ loadMxCADassembly: OD,
2368
+ createMxCad: oC,
2369
+ drawText: aC,
2370
+ drawCircle: jD,
2371
+ drawLine: ID,
2372
+ drawMText: mC,
2373
+ drawPolyLine: GD,
2374
+ drawPolygon: WD,
2375
+ drawArc: UD,
2376
+ drawEllipticalArc: zD,
2377
+ mxErase: VD,
2378
+ MxDraw3d: U,
2379
+ loadMxCADassembly3d: fC
2099
2380
  }, Symbol.toStringTag, { value: "Module" }));
2100
2381
  export {
2101
- gD as McAppType,
2102
- Z as McDb,
2103
- dD as McDbAlignedDimension,
2104
- cD as McDbBlockReference,
2105
- PD as McDbBlockTable,
2106
- kD as McDbBlockTableIterator,
2107
- X as McDbBlockTableRecord,
2108
- TD as McDbBlockTableRecordIterator,
2109
- CD as McDbCircle,
2110
- q as McDbCurve,
2111
- AD as McDbDatabase,
2112
- BD as McDbDimension,
2113
- I as McDbEntity,
2114
- xD as McDbLayerTable,
2115
- CC as McDbLayerTableRecord,
2116
- H as McDbLine,
2117
- fD as McDbLinetypeTable,
2118
- DD as McDbMText,
2119
- v as McDbObject,
2120
- lD as McDbPolyline,
2121
- mD as McDbRotatedDimension,
2122
- _ as McDbText,
2123
- MD as McDbTextStyleTable,
2124
- U as McDrawResbuf,
2125
- hD as McDrawSelSet,
2126
- ED as McDrawUtility,
2127
- pD as McDrawUtilityClass,
2128
- j as McObject,
2129
- x as McObjectId,
2130
- y as McObjectIdType,
2131
- L as McRxObject,
2132
- s as MxCpp,
2133
- yD as MxCppType,
2134
- G as MxDraw3d,
2135
- V as MxTools,
2136
- oD as b64Decode,
2137
- nD as b64Encode,
2138
- FC as createMxCad,
2139
- pC as default,
2140
- uD as downloadFile,
2141
- OD as drawArc,
2142
- RD as drawCircle,
2143
- jD as drawEllipticalArc,
2144
- vD as drawLine,
2145
- rC as drawMText,
2146
- LD as drawPolyLine,
2147
- SD as drawPolygon,
2148
- AC as drawText,
2149
- W as getFilterImp,
2150
- bD as loadMxCADassembly,
2151
- dC as loadMxCADassembly3d,
2152
- GD as mxErase,
2153
- aD as saveAsFileDialog
2382
+ LD as McAppType,
2383
+ O as McCmColor,
2384
+ BD as McDb,
2385
+ MD as McDbAlignedDimension,
2386
+ PD as McDbArc,
2387
+ fD as McDbBlockReference,
2388
+ xD as McDbBlockTable,
2389
+ yD as McDbBlockTableIterator,
2390
+ Y as McDbBlockTableRecord,
2391
+ gD as McDbBlockTableRecordIterator,
2392
+ AD as McDbCircle,
2393
+ N as McDbCurve,
2394
+ ED as McDbDatabase,
2395
+ tD as McDbDimension,
2396
+ z as McDbEntity,
2397
+ dD as McDbLayerTable,
2398
+ FC as McDbLayerTableRecord,
2399
+ J as McDbLine,
2400
+ hD as McDbLinetypeTable,
2401
+ FD as McDbMText,
2402
+ S as McDbObject,
2403
+ bD as McDbPolyline,
2404
+ TD as McDbRotatedDimension,
2405
+ Q as McDbText,
2406
+ wD as McDbTextStyleTable,
2407
+ K as McDrawResbuf,
2408
+ RD as McDrawSelSet,
2409
+ eD as McDrawUtility,
2410
+ kD as McDrawUtilityClass,
2411
+ Z as McGeMatrix3d,
2412
+ p as McGePoint3d,
2413
+ G as McGeVector3d,
2414
+ W as McObject,
2415
+ f as McObjectId,
2416
+ x as McObjectIdType,
2417
+ v as McRxObject,
2418
+ i as MxCpp,
2419
+ SD as MxCppType,
2420
+ U as MxDraw3d,
2421
+ H as MxTools,
2422
+ lD as b64Decode,
2423
+ uD as b64Encode,
2424
+ oC as createMxCad,
2425
+ TC as default,
2426
+ mD as downloadFile,
2427
+ pD as downloadFileFromUrl,
2428
+ UD as drawArc,
2429
+ jD as drawCircle,
2430
+ zD as drawEllipticalArc,
2431
+ ID as drawLine,
2432
+ mC as drawMText,
2433
+ GD as drawPolyLine,
2434
+ WD as drawPolygon,
2435
+ aC as drawText,
2436
+ V as getFilterImp,
2437
+ OD as loadMxCADassembly,
2438
+ fC as loadMxCADassembly3d,
2439
+ VD as mxErase,
2440
+ cD as saveAsFileDialog
2154
2441
  };