mxcad 1.0.75 → 1.0.76

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,11 +1,11 @@
1
- import { MxFun as h, MrxDbgUiPrPoint as S, MxCursorType as wD, MrxDbgUtils as gD, DynamicInputType as QD, DetailedResult as eD, store as xD, loadCoreCode as XD, MxPaintBrush as v, MrxDbgUiPrBaseReturn as T, MxDbCircleShape as bD, MxDbLine as X, MxDbPolyline as DC, MxDbCircleArc as Q, Mx3PointArc as CC, MxDbEllipseShape as BC, McEdGetPointWorldDrawObject as EC, MxDbEllipse as FC } from "mxdraw";
2
- function fD(E) {
1
+ import { MxFun as h, MrxDbgUiPrPoint as O, MxCursorType as bD, MrxDbgUtils as fD, DynamicInputType as xD, DetailedResult as iD, MrxDbgUiPrDist as BC, store as MD, loadCoreCode as EC, MxPaintBrush as v, MrxDbgUiPrBaseReturn as T, MxDbCircleShape as PD, MxDbLine as Q, MxDbPolyline as FC, MxDbCircleArc as Y, Mx3PointArc as AC, MxDbEllipseShape as tC, McEdGetPointWorldDrawObject as eC, MxDbEllipse as iC } from "mxdraw";
2
+ function TD(E) {
3
3
  return btoa(unescape(encodeURIComponent(E)));
4
4
  }
5
- function MD(E) {
5
+ function kD(E) {
6
6
  return decodeURIComponent(escape(atob(E)));
7
7
  }
8
- async function PD({
8
+ async function RD({
9
9
  blob: E,
10
10
  filename: D = "",
11
11
  types: C = [
@@ -46,24 +46,24 @@ async function PD({
46
46
  console.error(B.name, B.message);
47
47
  }
48
48
  }
49
- function TD(E, D) {
49
+ function OD(E, D) {
50
50
  const C = document.createElement("a");
51
51
  C.href = window.URL.createObjectURL(E), C.download = D, C.click();
52
52
  }
53
- function kD(E, D) {
53
+ function SD(E, D) {
54
54
  fetch(E).then((C) => C.blob()).then((C) => {
55
55
  const B = document.createElement("a");
56
56
  B.href = window.URL.createObjectURL(C), B.download = D, B.click();
57
57
  });
58
58
  }
59
59
  const J = {
60
- b64Encode: fD,
61
- b64Decode: MD,
62
- saveAsFileDialog: PD,
63
- downloadFile: TD,
64
- downloadFileFromUrl: kD
60
+ b64Encode: TD,
61
+ b64Decode: kD,
62
+ saveAsFileDialog: RD,
63
+ downloadFile: OD,
64
+ downloadFileFromUrl: SD
65
65
  };
66
- class AC {
66
+ class rC {
67
67
  z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
68
68
  encodeToGb2312(D) {
69
69
  for (var C = "", B = 0; B < D.length; B++) {
@@ -112,12 +112,12 @@ class AC {
112
112
  return C;
113
113
  }
114
114
  }
115
- let P = new AC();
116
- class u {
115
+ let P = new rC();
116
+ class a {
117
117
  static kOrigin;
118
118
  imp;
119
119
  constructor(D, C, B) {
120
- this.imp = new r.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);
120
+ 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);
121
121
  }
122
122
  toVector3() {
123
123
  return new THREE.Vector3(this.imp.x, this.imp.y, this.imp.z);
@@ -144,7 +144,7 @@ class u {
144
144
  return this.imp.isEqualTo(D.imp);
145
145
  }
146
146
  clone() {
147
- return new u(this.imp);
147
+ return new a(this.imp);
148
148
  }
149
149
  get x() {
150
150
  return this.imp.x;
@@ -172,7 +172,7 @@ class y {
172
172
  static kNegateZAxis;
173
173
  imp;
174
174
  constructor(D, C, B) {
175
- this.imp = new r.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);
175
+ 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);
176
176
  }
177
177
  copy(D) {
178
178
  return this.imp.x = D.imp.x, this.imp.y = D.imp.y, this.imp.z = D.imp.z, this;
@@ -240,7 +240,7 @@ class I {
240
240
  static kIdentity;
241
241
  imp;
242
242
  constructor(D) {
243
- this.imp = new r.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
243
+ this.imp = new i.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
244
244
  }
245
245
  copy(D) {
246
246
  return this.imp.copy(D.imp), this;
@@ -294,10 +294,10 @@ class I {
294
294
  return this.imp.getData(D, C);
295
295
  }
296
296
  }
297
- class tC {
297
+ class sC {
298
298
  imp;
299
299
  constructor(D) {
300
- this.imp = new r.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
300
+ this.imp = new i.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
301
301
  }
302
302
  copy(D) {
303
303
  return this.imp.copy(D.imp), this;
@@ -315,10 +315,10 @@ class tC {
315
315
  this.imp.setAt(D, C);
316
316
  }
317
317
  }
318
- class RD {
318
+ class LD {
319
319
  imp;
320
320
  constructor(D) {
321
- this.imp = new r.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
321
+ this.imp = new i.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
322
322
  }
323
323
  copy(D) {
324
324
  return this.imp.copy(D.imp), this;
@@ -341,10 +341,10 @@ class RD {
341
341
  D(C ? P.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
342
342
  }
343
343
  }
344
- class eC {
344
+ class nC {
345
345
  imp;
346
346
  constructor(D) {
347
- this.imp = new r.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
347
+ this.imp = new i.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
348
348
  }
349
349
  copy(D) {
350
350
  return this.imp.copy(D.imp), this;
@@ -356,19 +356,19 @@ class eC {
356
356
  return this.imp.length();
357
357
  }
358
358
  at(D) {
359
- return new u(this.imp.at(D));
359
+ return new a(this.imp.at(D));
360
360
  }
361
361
  setAt(D, C) {
362
362
  this.imp.setAt(D, C.imp);
363
363
  }
364
364
  }
365
- const iC = new FinalizationRegistry((E) => {
366
- r.App.DestroyObject(E);
367
- }), rC = {};
368
- class V {
365
+ const oC = new FinalizationRegistry((E) => {
366
+ i.App.DestroyObject(E);
367
+ }), aC = {};
368
+ class K {
369
369
  imp = 0;
370
370
  constructor(D) {
371
- this.imp = D, this.imp && iC.register(this, D, rC);
371
+ this.imp = D, this.imp && oC.register(this, D, aC);
372
372
  }
373
373
  getImp() {
374
374
  return this.imp;
@@ -405,27 +405,30 @@ class R {
405
405
  return this.type != 2 && this.id != 0;
406
406
  }
407
407
  erase() {
408
- this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && z.eraseEntity(this.id);
408
+ this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && U.eraseEntity(this.id);
409
409
  }
410
410
  getMcDbObject() {
411
- return this.type == 0 ? r.App.ObjectIdToObject(this.id) : null;
411
+ return this.type == 0 ? i.App.ObjectIdToObject(this.id) : null;
412
412
  }
413
413
  getMcDbEntity() {
414
- return this.type == 0 && r.App.ObjectIdIsKindOf(this.id, "McDbEntity") ? r.App.ObjectIdToObject(this.id) : null;
414
+ return this.type == 0 && i.App.ObjectIdIsKindOf(this.id, "McDbEntity") ? i.App.ObjectIdToObject(this.id) : null;
415
+ }
416
+ getMcDbCurve() {
417
+ return this.type == 0 && i.App.ObjectIdIsKindOf(this.id, "McDbCurve") ? i.App.ObjectIdToObject(this.id) : null;
415
418
  }
416
419
  clone() {
417
420
  if (this.type == 0) {
418
- let D = r.App.getImp().ObjectIdToMdObject(this.id);
421
+ let D = i.App.getImp().ObjectIdToMdObject(this.id);
419
422
  if (!D)
420
423
  return null;
421
424
  let C = D.Clone();
422
- return r.App.DestroyObject(D), r.App.CreateCloneObject(C);
425
+ return i.App.DestroyObject(D), i.App.CreateCloneObject(C);
423
426
  }
424
427
  return null;
425
428
  }
426
429
  getObjectName() {
427
430
  if (this.type == 0)
428
- return r.App.getImp().ObjectIdToObjectName(this.id);
431
+ return i.App.getImp().ObjectIdToObjectName(this.id);
429
432
  if (this.type == 1) {
430
433
  let D = h.getCurrentDraw().getMxEntity(this.id);
431
434
  if (D)
@@ -437,7 +440,7 @@ class R {
437
440
  return this.type == 1 ? h.getCurrentDraw().getMxEntity(this.id) : null;
438
441
  }
439
442
  }
440
- class j extends V {
443
+ class j extends K {
441
444
  constructor(D) {
442
445
  super(D);
443
446
  }
@@ -449,19 +452,43 @@ class j extends V {
449
452
  }
450
453
  Clone() {
451
454
  let D = this.imp.Clone();
452
- return r.App.CreateCloneObject(D);
455
+ return i.App.CreateCloneObject(D);
453
456
  }
454
457
  GetHandle() {
455
458
  return this.imp.GetHandle();
456
459
  }
457
460
  GetDatabase() {
458
- return new lD(this.imp.GetDatabase());
461
+ return new mD(this.imp.GetDatabase());
459
462
  }
460
463
  GetOwnerID() {
461
464
  return this.imp.GetOwnerID();
462
465
  }
463
466
  }
464
- var sD;
467
+ class nD {
468
+ aryVal = [];
469
+ constructor(D) {
470
+ if (D) {
471
+ let C = 0, B = D.length();
472
+ for (; C < B; C++) {
473
+ let F = D.release(C), A = i.App.CreateCloneObject(F);
474
+ A != null && this.aryVal.push(A);
475
+ }
476
+ i.App.DestroyObject(D);
477
+ }
478
+ }
479
+ forEach(D) {
480
+ let C = this.aryVal.length;
481
+ for (let B = 0; B < C; B++)
482
+ D(this.aryVal[B]);
483
+ }
484
+ length() {
485
+ return this.aryVal.length;
486
+ }
487
+ empty() {
488
+ return this.aryVal.length == 0;
489
+ }
490
+ }
491
+ var oD;
465
492
  ((E) => {
466
493
  ((D) => {
467
494
  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";
@@ -472,11 +499,11 @@ var sD;
472
499
  })(E.AttachmentPoint || (E.AttachmentPoint = {})), ((D) => {
473
500
  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";
474
501
  })(E.LineWeight || (E.LineWeight = {}));
475
- })(sD || (sD = {}));
476
- class U {
502
+ })(oD || (oD = {}));
503
+ class H {
477
504
  imp;
478
505
  constructor(D, C, B) {
479
- this.imp = new r.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) : typeof D == "number" && typeof C == "number" && typeof B == "number" && this.imp.setRGB(D, C, B);
506
+ 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) : typeof D == "number" && typeof C == "number" && typeof B == "number" && this.imp.setRGB(D, C, B);
480
507
  }
481
508
  getImp() {
482
509
  return this.imp;
@@ -485,7 +512,7 @@ class U {
485
512
  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;
486
513
  }
487
514
  clone() {
488
- return new U(this.imp);
515
+ return new H(this.imp);
489
516
  }
490
517
  setColorIndex(D) {
491
518
  this.imp.setColorIndex(D);
@@ -530,9 +557,9 @@ class U {
530
557
  this.imp.colorIndex = D;
531
558
  }
532
559
  }
533
- class sC extends j {
560
+ class uC extends j {
534
561
  constructor(D) {
535
- super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbLayerTableRecord());
562
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLayerTableRecord());
536
563
  }
537
564
  get name() {
538
565
  return this.imp.getName();
@@ -559,7 +586,7 @@ class sC extends j {
559
586
  this.imp.setIsLocked(D);
560
587
  }
561
588
  get color() {
562
- return new U(this.imp.color());
589
+ return new H(this.imp.color());
563
590
  }
564
591
  set color(D) {
565
592
  this.imp.setColor(D.getImp());
@@ -577,39 +604,39 @@ class sC extends j {
577
604
  this.imp.setLineWeight(D);
578
605
  }
579
606
  }
580
- class SD extends j {
607
+ class vD extends j {
581
608
  constructor(D) {
582
609
  super(D);
583
610
  }
584
611
  }
585
- class LD extends j {
612
+ class ID extends j {
586
613
  constructor(D) {
587
614
  super(D);
588
615
  }
589
616
  }
590
- class OD extends j {
617
+ class jD extends j {
591
618
  constructor(D) {
592
619
  super(D);
593
620
  }
594
621
  }
595
- class lD extends V {
622
+ class mD extends K {
596
623
  constructor(D) {
597
624
  super(D);
598
625
  }
599
626
  GetLayerTable() {
600
- return new SD(this.imp.GetLayerTable());
627
+ return new vD(this.imp.GetLayerTable());
601
628
  }
602
629
  GetLinetypeTable() {
603
- return new LD(this.imp.GetLinetypeTable());
630
+ return new ID(this.imp.GetLinetypeTable());
604
631
  }
605
632
  GetTextStyleTable() {
606
- return new OD(this.imp.GetTextStyleTable());
633
+ return new jD(this.imp.GetTextStyleTable());
607
634
  }
608
635
  GetBlockTable() {
609
- return new jD(this.imp.GetBlockTable());
636
+ return new VD(this.imp.GetBlockTable());
610
637
  }
611
638
  CurrentSpace() {
612
- return new FD(this.imp.CurrentSpace());
639
+ return new ED(this.imp.CurrentSpace());
613
640
  }
614
641
  GetCurrentlyLineTypeScale() {
615
642
  return this.imp.GetCurrentlyLineTypeScale();
@@ -634,7 +661,7 @@ class lD extends V {
634
661
  this.imp.SetCurrentlyLayerName(C);
635
662
  }
636
663
  GetCurrentlyTrueColor() {
637
- return new U(this.imp.GetCurrentlyTrueColor());
664
+ return new H(this.imp.GetCurrentlyTrueColor());
638
665
  }
639
666
  GetCurrentlyDrawColor() {
640
667
  let D = this.imp.GetCurrentlyDrawColor(), C = new THREE.Color();
@@ -658,7 +685,7 @@ class lD extends V {
658
685
  this.imp.SetCurrentlyTextStyle(C);
659
686
  }
660
687
  }
661
- class vD extends V {
688
+ class GD extends K {
662
689
  constructor(D) {
663
690
  super(D);
664
691
  }
@@ -675,9 +702,9 @@ class vD extends V {
675
702
  return this.imp.step(D, C);
676
703
  }
677
704
  }
678
- class FD extends j {
705
+ class ED extends j {
679
706
  constructor(D) {
680
- super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockTableRecord());
707
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTableRecord());
681
708
  }
682
709
  appendAcDbEntity(D) {
683
710
  return new R(
@@ -687,16 +714,27 @@ class FD extends j {
687
714
  }
688
715
  newIterator(D = !0, C = !0) {
689
716
  let B = this.imp.newIterator(D, C);
690
- return new vD(B);
717
+ return new GD(B);
691
718
  }
692
719
  get origin() {
693
- return new u(this.imp.origin());
720
+ return new a(this.imp.origin());
694
721
  }
695
722
  set origin(D) {
696
723
  this.imp.setOrigin(D.imp);
697
724
  }
725
+ getBoundingBox() {
726
+ let D = this.imp.getBoundingBox();
727
+ return D.length() < 2 ? { minPt: new a(), maxPt: new a(), ret: !1 } : {
728
+ minPt: new a(D.at(0)),
729
+ maxPt: new a(D.at(1)),
730
+ ret: !0
731
+ };
732
+ }
733
+ invalidBoundingBoxBuffer() {
734
+ this.imp.invalidBoundingBoxBuffer();
735
+ }
698
736
  }
699
- class ID extends V {
737
+ class WD extends K {
700
738
  constructor(D) {
701
739
  super(D);
702
740
  }
@@ -708,41 +746,41 @@ class ID extends V {
708
746
  }
709
747
  getRecord() {
710
748
  let D = this.imp.getRecord();
711
- return new FD(D);
749
+ return new ED(D);
712
750
  }
713
751
  step(D = !0, C = !0) {
714
752
  this.imp.start(D, C);
715
753
  }
716
754
  }
717
- class jD extends j {
755
+ class VD extends j {
718
756
  constructor(D) {
719
- super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockTable());
757
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTable());
720
758
  }
721
759
  getAt(D) {
722
760
  let C = this.getAt(D);
723
- return C && new FD(C);
761
+ return C && new ED(C);
724
762
  }
725
763
  has(D) {
726
764
  return this.imp.has(D);
727
765
  }
728
766
  newIterator(D = !0, C = !0) {
729
767
  let B = this.imp.newIterator(D, C);
730
- return new ID(B);
768
+ return new WD(B);
731
769
  }
732
770
  add(D) {
733
771
  return this.imp.add(D.getImp());
734
772
  }
735
773
  }
736
- class W extends j {
774
+ class G extends j {
737
775
  constructor(D) {
738
776
  super(D);
739
777
  }
740
778
  explode() {
741
779
  let D = this.imp.explode();
742
- return new $(D);
780
+ return new AD(D);
743
781
  }
744
782
  get trueColor() {
745
- return new U(this.imp.TrueColor());
783
+ return new H(this.imp.TrueColor());
746
784
  }
747
785
  set trueColor(D) {
748
786
  this.imp.SetTrueColor(D.getImp());
@@ -805,130 +843,130 @@ class W extends j {
805
843
  let D = this.imp.GetBoundingBox();
806
844
  if (D) {
807
845
  let C = {
808
- minPt: new u(D.AtPoint(0)),
809
- maxPt: new u(D.AtPoint(1)),
810
- ret: 0
846
+ minPt: new a(D.AtPoint(0)),
847
+ maxPt: new a(D.AtPoint(1)),
848
+ ret: !0
811
849
  };
812
- return r.App.DestroyObject(D), C;
850
+ return i.App.DestroyObject(D), C;
813
851
  } else
814
- return { minPt: new u(), maxPt: new u(), ret: 1 };
852
+ return { minPt: new a(), maxPt: new a(), ret: !1 };
815
853
  }
816
854
  }
817
- class _ extends W {
855
+ class V extends G {
818
856
  constructor(D) {
819
857
  super(D);
820
858
  }
821
859
  getStartParam() {
822
- return { val: this.imp.getStartParam(), ret: r.getCallResult() };
860
+ return { val: this.imp.getStartParam(), ret: i.getCallResult() };
823
861
  }
824
862
  getEndParam() {
825
- return { val: this.imp.getEndParam(), ret: r.getCallResult() };
863
+ return { val: this.imp.getEndParam(), ret: i.getCallResult() };
826
864
  }
827
865
  getDistAtParam(D) {
828
- return { val: this.imp.getDistAtParam(D), ret: r.getCallResult() };
866
+ return { val: this.imp.getDistAtParam(D), ret: i.getCallResult() };
829
867
  }
830
868
  getParamAtDist(D) {
831
- return { val: this.imp.getParamAtDist(D), ret: r.getCallResult() };
869
+ return { val: this.imp.getParamAtDist(D), ret: i.getCallResult() };
832
870
  }
833
871
  getDistAtPoint(D) {
834
- return { val: this.imp.getDistAtPoint(D.imp), ret: r.getCallResult() };
872
+ return { val: this.imp.getDistAtPoint(D.imp), ret: i.getCallResult() };
835
873
  }
836
874
  getPointAtDist(D) {
837
875
  return {
838
- val: new u(this.imp.getPointAtDist(D)),
839
- ret: r.getCallResult()
876
+ val: new a(this.imp.getPointAtDist(D)),
877
+ ret: i.getCallResult()
840
878
  };
841
879
  }
842
880
  getStartPoint() {
843
881
  return {
844
- val: new u(this.imp.getStartPoint()),
845
- ret: r.getCallResult()
882
+ val: new a(this.imp.getStartPoint()),
883
+ ret: i.getCallResult()
846
884
  };
847
885
  }
848
886
  getEndPoint() {
849
887
  return {
850
- val: new u(this.imp.getStartPoint()),
851
- ret: r.getCallResult()
888
+ val: new a(this.imp.getStartPoint()),
889
+ ret: i.getCallResult()
852
890
  };
853
891
  }
854
892
  getPointAtParam(D) {
855
893
  return {
856
- val: new u(this.imp.getPointAtParam(D)),
857
- ret: r.getCallResult()
894
+ val: new a(this.imp.getPointAtParam(D)),
895
+ ret: i.getCallResult()
858
896
  };
859
897
  }
860
898
  getParamAtPoint(D) {
861
899
  return {
862
900
  val: this.imp.getParamAtPoint(D.imp),
863
- ret: r.getCallResult()
901
+ ret: i.getCallResult()
864
902
  };
865
903
  }
866
904
  getFirstDeriv(D) {
867
905
  return {
868
906
  val: new y(this.imp.getFirstDeriv(D)),
869
- ret: r.getCallResult()
907
+ ret: i.getCallResult()
870
908
  };
871
909
  }
872
910
  getFirstDerivEx(D) {
873
911
  return {
874
912
  val: new y(this.imp.getFirstDerivEx(D.imp)),
875
- ret: r.getCallResult()
913
+ ret: i.getCallResult()
876
914
  };
877
915
  }
878
916
  getClosestPointTo(D, C) {
879
917
  return {
880
- val: new u(this.imp.getClosestPointTo(D.imp, C)),
881
- ret: r.getCallResult()
918
+ val: new a(this.imp.getClosestPointTo(D.imp, C)),
919
+ ret: i.getCallResult()
882
920
  };
883
921
  }
884
922
  offsetCurves(D, C) {
885
923
  let B = this.imp.offsetCurves(D, C.imp);
886
- return new $(B);
924
+ return new nD(B);
887
925
  }
888
926
  splitCurves(D) {
889
927
  let C = this.imp.splitCurves(D);
890
- return new $(C);
928
+ return new nD(C);
891
929
  }
892
930
  getArea() {
893
- return { val: this.imp.getArea(), ret: r.getCallResult() };
931
+ return { val: this.imp.getArea(), ret: i.getCallResult() };
894
932
  }
895
933
  getSamplePoints(D) {
896
934
  let C = this.imp.getSamplePoints(D);
897
- return new $(C);
935
+ return new AD(C);
898
936
  }
899
937
  getLength() {
900
- return { val: this.imp.getLength(), ret: r.getCallResult() };
938
+ return { val: this.imp.getLength(), ret: i.getCallResult() };
901
939
  }
902
940
  }
903
- class DD extends _ {
941
+ class X extends V {
904
942
  constructor(D, C, B, F, A, t) {
905
- D instanceof Object ? D instanceof u ? (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbLine()), C instanceof u && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbLine()), this.startPoint = new u(D, C, B), this.endPoint = new u(F, A, t));
943
+ D instanceof Object ? D instanceof a ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), C instanceof a && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), this.startPoint = new a(D, C, B), this.endPoint = new a(F, A, t));
906
944
  }
907
945
  get startPoint() {
908
- return new u(this.imp.startPoint());
946
+ return new a(this.imp.startPoint());
909
947
  }
910
948
  set startPoint(D) {
911
949
  this.imp.setStartPoint(D.imp);
912
950
  }
913
951
  get endPoint() {
914
- return new u(this.imp.endPoint());
952
+ return new a(this.imp.endPoint());
915
953
  }
916
954
  set endPoint(D) {
917
955
  this.imp.setEndPoint(D.imp);
918
956
  }
919
957
  }
920
- class nD extends W {
958
+ class aD extends G {
921
959
  constructor(D) {
922
- super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbText());
960
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbText());
923
961
  }
924
962
  get position() {
925
- return new u(this.imp.position());
963
+ return new a(this.imp.position());
926
964
  }
927
965
  set position(D) {
928
966
  this.imp.setPosition(D.imp);
929
967
  }
930
968
  get alignmentPoint() {
931
- return new u(this.imp.position());
969
+ return new a(this.imp.position());
932
970
  }
933
971
  set alignmentPoint(D) {
934
972
  this.imp.setAlignmentPoint(D.imp);
@@ -976,12 +1014,12 @@ class nD extends W {
976
1014
  this.imp.setVerticalMode(D);
977
1015
  }
978
1016
  }
979
- class CD extends W {
1017
+ class DD extends G {
980
1018
  constructor(D) {
981
- super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbMText());
1019
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbMText());
982
1020
  }
983
1021
  get location() {
984
- return new u(this.imp.location());
1022
+ return new a(this.imp.location());
985
1023
  }
986
1024
  set location(D) {
987
1025
  this.imp.setLocation(D.imp);
@@ -1017,15 +1055,15 @@ class CD extends W {
1017
1055
  this.imp.setContents(P.encodeToGb2312(D));
1018
1056
  }
1019
1057
  }
1020
- class G extends _ {
1058
+ class W extends V {
1021
1059
  constructor(D, C, B, F) {
1022
- D instanceof Object ? super(D) : (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbCircle()), typeof D == "number" && (this.imp.setCenter(new u(D, C, B).imp), this.imp.setRadius(F)));
1060
+ D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbCircle()), typeof D == "number" && (this.imp.setCenter(new a(D, C, B).imp), this.imp.setRadius(F)));
1023
1061
  }
1024
1062
  setCenter(D, C, B) {
1025
- this.imp.setCenter(new u(D, C, B).imp);
1063
+ this.imp.setCenter(new a(D, C, B).imp);
1026
1064
  }
1027
1065
  get center() {
1028
- return new u(this.imp.center());
1066
+ return new a(this.imp.center());
1029
1067
  }
1030
1068
  set center(D) {
1031
1069
  this.imp.setCenter(D.imp);
@@ -1037,9 +1075,9 @@ class G extends _ {
1037
1075
  this.imp.setRadius(D);
1038
1076
  }
1039
1077
  }
1040
- class BD extends _ {
1078
+ class CD extends V {
1041
1079
  constructor(D) {
1042
- super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbPolyline());
1080
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbPolyline());
1043
1081
  }
1044
1082
  get isClosed() {
1045
1083
  return this.imp.isClosed();
@@ -1055,7 +1093,7 @@ class BD extends _ {
1055
1093
  }
1056
1094
  addVertexAt(D, C = 0, B = 0, F = 0, A = 0) {
1057
1095
  if (D instanceof THREE.Vector3) {
1058
- let t = new r.mxcadassemblyimp.MdGePoint3d();
1096
+ let t = new i.mxcadassemblyimp.MdGePoint3d();
1059
1097
  return t.x = D.x, t.y = D.y, t.z = D.z, this.imp.addVertexAt(A, t, C, B, F);
1060
1098
  } else
1061
1099
  return this.imp.addVertexAt(A, D.imp, C, B, F);
@@ -1067,7 +1105,7 @@ class BD extends _ {
1067
1105
  return this.imp.numVerts();
1068
1106
  }
1069
1107
  getPointAt(D) {
1070
- return { val: this.imp.getPointAt(D), ret: r.getCallResult() };
1108
+ return { val: this.imp.getPointAt(D), ret: i.getCallResult() };
1071
1109
  }
1072
1110
  getBulgeAt(D) {
1073
1111
  return this.imp.getBulgeAt(D);
@@ -1076,7 +1114,7 @@ class BD extends _ {
1076
1114
  return {
1077
1115
  val1: this.imp.getStartWidthsAt(D),
1078
1116
  val2: this.imp.getEndWidthsAt(D),
1079
- ret: r.getCallResult()
1117
+ ret: i.getCallResult()
1080
1118
  };
1081
1119
  }
1082
1120
  setPointAt(D, C) {
@@ -1086,9 +1124,9 @@ class BD extends _ {
1086
1124
  return this.imp.setBulgeAt(D, C);
1087
1125
  }
1088
1126
  }
1089
- class oD extends W {
1127
+ class uD extends G {
1090
1128
  constructor(D) {
1091
- super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockReference());
1129
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockReference());
1092
1130
  }
1093
1131
  get blockTableRecordId() {
1094
1132
  return new R(this.imp.blockTableRecord(), k.kMxCAD);
@@ -1097,7 +1135,7 @@ class oD extends W {
1097
1135
  this.imp.setBlockTableRecordId(D.id);
1098
1136
  }
1099
1137
  get position() {
1100
- return new u(this.imp.position());
1138
+ return new a(this.imp.position());
1101
1139
  }
1102
1140
  set position(D) {
1103
1141
  this.imp.setPosition(D.imp);
@@ -1121,12 +1159,12 @@ class oD extends W {
1121
1159
  this.imp.setBlockTransform(D.imp);
1122
1160
  }
1123
1161
  }
1124
- class cD extends W {
1162
+ class pD extends G {
1125
1163
  constructor(D) {
1126
1164
  super(D);
1127
1165
  }
1128
1166
  get textPosition() {
1129
- return new u(this.imp.textPosition());
1167
+ return new a(this.imp.textPosition());
1130
1168
  }
1131
1169
  set textPosition(D) {
1132
1170
  this.imp.setTextPosition(D.imp);
@@ -1207,24 +1245,24 @@ class cD extends W {
1207
1245
  this.imp.SetDimVarObjectId(D, C.id);
1208
1246
  }
1209
1247
  }
1210
- class aD extends cD {
1248
+ class lD extends pD {
1211
1249
  constructor(D) {
1212
- super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbAlignedDimension());
1250
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbAlignedDimension());
1213
1251
  }
1214
1252
  get xLine1Point() {
1215
- return new u(this.imp.xLine1Point());
1253
+ return new a(this.imp.xLine1Point());
1216
1254
  }
1217
1255
  set xLine1Point(D) {
1218
1256
  this.imp.setXLine1Point(D.imp);
1219
1257
  }
1220
1258
  get xLine2Point() {
1221
- return new u(this.imp.xLine2Point());
1259
+ return new a(this.imp.xLine2Point());
1222
1260
  }
1223
1261
  set xLine2Point(D) {
1224
1262
  this.imp.setXLine2Point(D.imp);
1225
1263
  }
1226
1264
  get dimLinePoint() {
1227
- return new u(this.imp.dimLinePoint());
1265
+ return new a(this.imp.dimLinePoint());
1228
1266
  }
1229
1267
  set dimLinePoint(D) {
1230
1268
  this.imp.setDimLinePoint(D.imp);
@@ -1236,24 +1274,24 @@ class aD extends cD {
1236
1274
  this.imp.setOblique(D);
1237
1275
  }
1238
1276
  }
1239
- class uD extends cD {
1277
+ class cD extends pD {
1240
1278
  constructor(D) {
1241
- super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbRotatedDimension());
1279
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbRotatedDimension());
1242
1280
  }
1243
1281
  get xLine1Point() {
1244
- return new u(this.imp.xLine1Point());
1282
+ return new a(this.imp.xLine1Point());
1245
1283
  }
1246
1284
  set xLine1Point(D) {
1247
1285
  this.imp.setXLine1Point(D.imp);
1248
1286
  }
1249
1287
  get xLine2Point() {
1250
- return new u(this.imp.xLine2Point());
1288
+ return new a(this.imp.xLine2Point());
1251
1289
  }
1252
1290
  set xLine2Point(D) {
1253
1291
  this.imp.setXLine2Point(D.imp);
1254
1292
  }
1255
1293
  get dimLinePoint() {
1256
- return new u(this.imp.dimLinePoint());
1294
+ return new a(this.imp.dimLinePoint());
1257
1295
  }
1258
1296
  set dimLinePoint(D) {
1259
1297
  this.imp.setDimLinePoint(D.imp);
@@ -1271,15 +1309,15 @@ class uD extends cD {
1271
1309
  this.imp.setRotation(D);
1272
1310
  }
1273
1311
  }
1274
- class ED extends _ {
1312
+ class BD extends V {
1275
1313
  constructor(D) {
1276
- super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbArc());
1314
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbArc());
1277
1315
  }
1278
1316
  setCenter(D, C, B) {
1279
- this.imp.setCenter(new u(D, C, B).imp);
1317
+ this.imp.setCenter(new a(D, C, B).imp);
1280
1318
  }
1281
1319
  get center() {
1282
- return new u(this.imp.center());
1320
+ return new a(this.imp.center());
1283
1321
  }
1284
1322
  set center(D) {
1285
1323
  this.imp.setCenter(D.imp);
@@ -1313,15 +1351,15 @@ class ED extends _ {
1313
1351
  );
1314
1352
  }
1315
1353
  }
1316
- class mD extends _ {
1317
- constructor(D, C, B, F, A, t, e, i, s) {
1318
- D instanceof Object ? super(D) : (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (e || (e = 1), typeof i != "number" && (i = 0), typeof s != "number" && (s = 6.283185307179586), this.imp.Init(new u(D, C, B).imp, new y(F, A, t).imp, e, i, s)));
1354
+ class FD extends V {
1355
+ constructor(D, C, B, F, A, t, e, r, s) {
1356
+ D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (e || (e = 1), typeof r != "number" && (r = 0), typeof s != "number" && (s = 6.283185307179586), this.imp.InitData(new a(D, C, B).imp, new y(F, A, t).imp, e, r, s)));
1319
1357
  }
1320
1358
  setCenter(D, C, B) {
1321
- this.imp.setCenter(new u(D, C, B).imp);
1359
+ this.imp.setCenter(new a(D, C, B).imp);
1322
1360
  }
1323
1361
  get center() {
1324
- return new u(this.imp.center());
1362
+ return new a(this.imp.center());
1325
1363
  }
1326
1364
  set center(D) {
1327
1365
  this.imp.setCenter(D.imp);
@@ -1363,13 +1401,27 @@ class mD extends _ {
1363
1401
  this.imp.setEndAngle(D);
1364
1402
  }
1365
1403
  }
1366
- function K(E = null) {
1404
+ class dD extends G {
1405
+ constructor(D, C, B) {
1406
+ D instanceof Object ? D instanceof a ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbPoint()), this.imp.setPosition(D.imp)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbPoint()), typeof D == "number" && this.imp.setPosition(new a(D, C, B).imp));
1407
+ }
1408
+ setPosition(D, C, B) {
1409
+ this.imp.setPosition(new a(D, C, B).imp);
1410
+ }
1411
+ get position() {
1412
+ return new a(this.imp.position());
1413
+ }
1414
+ set position(D) {
1415
+ this.imp.setPosition(D.imp);
1416
+ }
1417
+ }
1418
+ function N(E = null) {
1367
1419
  let D;
1368
- return E == null ? D = new r.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1420
+ return E == null ? D = new i.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1369
1421
  }
1370
- class $ extends V {
1422
+ class AD extends K {
1371
1423
  constructor(D) {
1372
- super(D), D || this.initTempObject(new r.mxcadassemblyimp.McDrawResbuf());
1424
+ super(D), D || this.initTempObject(new i.mxcadassemblyimp.McDrawResbuf());
1373
1425
  }
1374
1426
  Clear() {
1375
1427
  this.imp.Clear();
@@ -1378,16 +1430,16 @@ class $ extends V {
1378
1430
  return this.imp.GetCount();
1379
1431
  }
1380
1432
  AtDouble(D) {
1381
- return { val: this.imp.AtDouble(D), ret: r.getCallResult() };
1433
+ return { val: this.imp.AtDouble(D), ret: i.getCallResult() };
1382
1434
  }
1383
1435
  Atlong(D) {
1384
- return { val: this.imp.Atlong(D), ret: r.getCallResult() };
1436
+ return { val: this.imp.Atlong(D), ret: i.getCallResult() };
1385
1437
  }
1386
1438
  AtObject(D) {
1387
1439
  if (this.imp.AtObjectName(D) == "McDbMText") {
1388
1440
  let B = this.imp.AtObjectMdDbMText(D);
1389
1441
  if (B)
1390
- return { val: new CD(B), ret: r.getCallResult() };
1442
+ return { val: new DD(B), ret: i.getCallResult() };
1391
1443
  }
1392
1444
  return { val: void 0, ret: -1 };
1393
1445
  }
@@ -1395,13 +1447,13 @@ class $ extends V {
1395
1447
  this.imp.AddObject(D.getImp());
1396
1448
  }
1397
1449
  AtObjectId(D) {
1398
- return { val: new R(this.imp.AtObjectId(D), k.kMxCAD), ret: r.getCallResult() };
1450
+ return { val: new R(this.imp.AtObjectId(D), k.kMxCAD), ret: i.getCallResult() };
1399
1451
  }
1400
1452
  AtString(D, C = !0) {
1401
- return C ? { val: P.decodeFromGb2312(this.imp.AtString(D)), ret: r.getCallResult() } : { val: this.imp.AtString(D), ret: r.getCallResult() };
1453
+ return C ? { val: P.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() } : { val: this.imp.AtString(D), ret: i.getCallResult() };
1402
1454
  }
1403
1455
  AtPoint(D) {
1404
- return { val: new u(this.imp.AtPoint(D)), ret: r.getCallResult() };
1456
+ return { val: new a(this.imp.AtPoint(D)), ret: i.getCallResult() };
1405
1457
  }
1406
1458
  ItemDataType() {
1407
1459
  return this.imp.ItemDataType();
@@ -1418,6 +1470,9 @@ class $ extends V {
1418
1470
  AddString(D, C = -10, B = !0) {
1419
1471
  return B ? this.imp.AddString(P.encodeToGb2312(D), C) : this.imp.AddString(D, C);
1420
1472
  }
1473
+ AddMcDbEntityTypes(D) {
1474
+ return this.imp.AddString(D, 5020);
1475
+ }
1421
1476
  AddPoint(D, C = -10) {
1422
1477
  return this.imp.AddPoint(D.imp, C);
1423
1478
  }
@@ -1428,7 +1483,7 @@ class $ extends V {
1428
1483
  this.imp.Remove(D);
1429
1484
  }
1430
1485
  }
1431
- class GD {
1486
+ class UD {
1432
1487
  imp;
1433
1488
  constructor() {
1434
1489
  }
@@ -1440,26 +1495,31 @@ class GD {
1440
1495
  }
1441
1496
  findEntAtPoint(D, C, B, F = -1, A = null) {
1442
1497
  this.init();
1443
- let t = this.imp.findEntAtPoint(D, C, B, F, K(A));
1498
+ let t = this.imp.findEntAtPoint(D, C, B, F, N(A));
1444
1499
  return new R(t, k.kMxCAD);
1445
1500
  }
1446
- selectEnt(D, C = null) {
1447
- return this.init(), new Promise(async (B) => {
1448
- const F = new S();
1449
- D && F.setMessage(D), F.setCursorType(wD.kRect);
1450
- let A = await F.go();
1451
- if (!A) {
1452
- B([]);
1501
+ selectEnt(D, C = null, B = !0) {
1502
+ return this.init(), new Promise(async (F) => {
1503
+ const A = new O();
1504
+ D && A.setMessage(D), A.setCursorType(bD.kRect), A.setDisableOsnap(!0);
1505
+ let t = await A.go();
1506
+ if (!t) {
1507
+ F([]);
1453
1508
  return;
1454
1509
  }
1455
- gD.findEntAtPoint(A).then((t) => {
1456
- let e = [];
1457
- t.forEach((s) => {
1458
- e.push(new R(s, k.kMxDraw));
1510
+ if (B)
1511
+ fD.findEntAtPoint(t).then((e) => {
1512
+ let r = [];
1513
+ e.forEach((o) => {
1514
+ r.push(new R(o, k.kMxDraw));
1515
+ });
1516
+ let s = this.findEntAtPoint(t.x, t.y, t.z, -1, C);
1517
+ s.isValid() && r.push(s), F(r);
1459
1518
  });
1460
- let i = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
1461
- i.isValid() && e.push(i), B(e);
1462
- });
1519
+ else {
1520
+ let e = [], r = this.findEntAtPoint(t.x, t.y, t.z, -1, C);
1521
+ r.isValid() && e.push(r), F(e);
1522
+ }
1463
1523
  });
1464
1524
  }
1465
1525
  getCurrentSelect() {
@@ -1471,22 +1531,22 @@ class GD {
1471
1531
  }), D;
1472
1532
  }
1473
1533
  init() {
1474
- this.imp || (this.imp = new r.mxcadassemblyimp.McDrawUtility());
1534
+ this.imp || (this.imp = new i.mxcadassemblyimp.McDrawUtility());
1475
1535
  }
1476
1536
  }
1477
- let z = new GD();
1478
- class q extends V {
1537
+ let U = new UD();
1538
+ class Z extends K {
1479
1539
  constructor() {
1480
- super(), this.initTempObject(new r.mxcadassemblyimp.McDrawSelSet());
1540
+ super(), this.initTempObject(new i.mxcadassemblyimp.McDrawSelSet());
1481
1541
  }
1482
1542
  allSelect(D = null) {
1483
- return this.imp.allSelect(K(D));
1543
+ return this.imp.allSelect(N(D));
1484
1544
  }
1485
1545
  pointSelect(D, C, B = null, F = -1) {
1486
- return this.imp.pointSelect(D, C, K(B), F);
1546
+ return this.imp.pointSelect(D, C, N(B), F);
1487
1547
  }
1488
1548
  crossingSelect(D, C, B, F, A = null) {
1489
- return this.imp.crossingSelect(D, C, B, F, K(A));
1549
+ return this.imp.crossingSelect(D, C, B, F, N(A));
1490
1550
  }
1491
1551
  count() {
1492
1552
  return this.imp.count();
@@ -1506,36 +1566,36 @@ class q extends V {
1506
1566
  return D;
1507
1567
  }
1508
1568
  async userSelect(D, C = null) {
1509
- let B = new S();
1510
- D && B.setMessage(D), B.setCursorType(wD.kRect), B.setDynamicInputType(QD.kDynTip), B.setDisableOsnap(!0);
1569
+ let B = new O();
1570
+ D && B.setMessage(D), B.setCursorType(bD.kRect), B.setDynamicInputType(xD.kDynTip), B.setDisableOsnap(!0);
1511
1571
  let F = 0;
1512
1572
  for (; ; ) {
1513
1573
  let A = await B.go();
1514
1574
  if (F = B.getDetailedResult(), !A)
1515
1575
  break;
1516
- let t = await gD.getCorner(A, D, !0, (e) => {
1576
+ let t = await fD.getCorner(A, D, !0, (e) => {
1517
1577
  F = e.detailedResult;
1518
1578
  });
1519
1579
  if (!t)
1520
1580
  break;
1521
- this.imp.userSelect(A.x, A.y, t.x, t.y, K(C));
1581
+ this.imp.userSelect(A.x, A.y, t.x, t.y, N(C));
1522
1582
  }
1523
- return this.imp.highlightEntity(!1), F == eD.kEcsIn || F == eD.kNewCommadIn || F == eD.kUnknown ? new Promise((A) => {
1583
+ return this.imp.highlightEntity(!1), F == iD.kEcsIn || F == iD.kNewCommadIn || F == iD.kUnknown ? new Promise((A) => {
1524
1584
  A(!1);
1525
1585
  }) : new Promise((A) => {
1526
1586
  A(!0);
1527
1587
  });
1528
1588
  }
1529
1589
  }
1530
- class Y {
1590
+ class z {
1531
1591
  imp;
1532
1592
  constructor() {
1533
- this.imp = new S();
1593
+ this.imp = new O();
1534
1594
  }
1535
1595
  go() {
1536
- return new Promise((D, C) => {
1537
- this.imp.go((B) => {
1538
- B != 0 ? C(null) : D(new u(this.imp.value()));
1596
+ return new Promise((D) => {
1597
+ this.imp.go((C) => {
1598
+ C != 0 ? D(null) : D(new a(this.imp.value()));
1539
1599
  });
1540
1600
  });
1541
1601
  }
@@ -1559,17 +1619,17 @@ class Y {
1559
1619
  }
1560
1620
  setUserDraw(D) {
1561
1621
  this.imp.setUserDraw((C, B) => {
1562
- D(new u(C), B);
1622
+ D(new a(C), B);
1563
1623
  });
1564
1624
  }
1565
1625
  value() {
1566
- return new u(this.imp.value());
1626
+ return new a(this.imp.value());
1567
1627
  }
1568
1628
  getCADValue() {
1569
1629
  return this.imp.getCADValue();
1570
1630
  }
1571
1631
  basePt() {
1572
- return new u(this.imp.basePt());
1632
+ return new a(this.imp.basePt());
1573
1633
  }
1574
1634
  setBasePt(D) {
1575
1635
  this.imp.setBasePt(D.toVector3());
@@ -1617,7 +1677,94 @@ class Y {
1617
1677
  return this.imp.isDisableOsnap();
1618
1678
  }
1619
1679
  }
1620
- class H {
1680
+ class zD {
1681
+ imp;
1682
+ constructor() {
1683
+ this.imp = new BC();
1684
+ }
1685
+ keyWords() {
1686
+ return this.imp.keyWords();
1687
+ }
1688
+ setKeyWords(D) {
1689
+ return this.imp.setKeyWords(D);
1690
+ }
1691
+ message() {
1692
+ return this.imp.message();
1693
+ }
1694
+ setMessage(D) {
1695
+ return this.imp.setMessage(D);
1696
+ }
1697
+ keyWordPicked() {
1698
+ return this.imp.keyWordPicked();
1699
+ }
1700
+ isKeyWordPicked(D) {
1701
+ return this.imp.isKeyWordPicked(D);
1702
+ }
1703
+ setUserDraw(D) {
1704
+ this.imp.setUserDraw((C, B) => {
1705
+ D(new a(C), B);
1706
+ });
1707
+ }
1708
+ value() {
1709
+ return this.imp.value();
1710
+ }
1711
+ basePt() {
1712
+ return new a(this.imp.basePt());
1713
+ }
1714
+ setBasePt(D) {
1715
+ this.imp.setBasePt(D.toVector3());
1716
+ }
1717
+ setUseBasePt(D) {
1718
+ return this.imp.setUseBasePt(D);
1719
+ }
1720
+ getDetailedResult() {
1721
+ return this.imp.getDetailedResult();
1722
+ }
1723
+ getStatus() {
1724
+ return this.imp.getStatus();
1725
+ }
1726
+ go() {
1727
+ return new Promise((D) => {
1728
+ this.imp.go((C) => {
1729
+ C != 0 ? D(null) : D(this.imp.value());
1730
+ });
1731
+ });
1732
+ }
1733
+ drawReserve(D) {
1734
+ return this.imp.drawReserve(D);
1735
+ }
1736
+ setInputToucheType(D) {
1737
+ return this.imp.setInputToucheType(D);
1738
+ }
1739
+ getInputToucheType() {
1740
+ return this.imp.getInputToucheType();
1741
+ }
1742
+ setCursorType(D) {
1743
+ this.imp.setCursorType(D);
1744
+ }
1745
+ getCursorType() {
1746
+ return this.imp.getCursorType();
1747
+ }
1748
+ setDynamicInputType(D) {
1749
+ this.imp.setDynamicInputType(D);
1750
+ }
1751
+ getDynamicInputType() {
1752
+ return this.imp.getDynamicInputType();
1753
+ }
1754
+ isDisableDynInput() {
1755
+ return this.imp.isDisableDynInput();
1756
+ }
1757
+ setDisableDynInput(D) {
1758
+ return this.imp.setDisableDynInput(D);
1759
+ }
1760
+ setDisableOsnap(D) {
1761
+ return this.imp.setDisableOsnap(D);
1762
+ }
1763
+ isDisableOsnap() {
1764
+ return this.imp.isDisableOsnap();
1765
+ }
1766
+ }
1767
+ class _ {
1621
1768
  imp;
1622
1769
  static currentFileName;
1623
1770
  constructor(D) {
@@ -1632,24 +1779,18 @@ class H {
1632
1779
  getImp() {
1633
1780
  return this.imp;
1634
1781
  }
1635
- updateDisplay(D, C) {
1636
- this.imp.updateDisplay(D, C);
1637
- }
1638
- test() {
1639
- this.imp.test();
1640
- }
1641
1782
  openWebFile(D, C, B = !0) {
1642
1783
  let F = this.imp.mxdrawObject, A = Math.round(Math.random() * 1e7);
1643
1784
  if (C) {
1644
- let t = (e, i) => {
1645
- F.removeEventFuction("openFileComplete", t), A == i && C(e);
1785
+ let t = (e, r) => {
1786
+ F.removeEventFuction("openFileComplete", t), A == r && C(e);
1646
1787
  };
1647
1788
  F.addEvent("openFileComplete", t);
1648
1789
  }
1649
- return H.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, A);
1790
+ return _.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, A);
1650
1791
  }
1651
1792
  getCurrentFileName() {
1652
- return H.currentFileName;
1793
+ return _.currentFileName;
1653
1794
  }
1654
1795
  saveFileToUrl(D, C) {
1655
1796
  const B = window;
@@ -1680,7 +1821,7 @@ class H {
1680
1821
  }, this.imp.saveFile(D);
1681
1822
  }
1682
1823
  GetDatabase() {
1683
- return this.imp.McDbDatabase || (this.imp.McDbDatabase = new lD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1824
+ return this.imp.McDbDatabase || (this.imp.McDbDatabase = new mD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1684
1825
  }
1685
1826
  GetSysVarString(D) {
1686
1827
  return this.imp.GetSysVarString(D);
@@ -1701,7 +1842,7 @@ class H {
1701
1842
  return this.imp.SetSysVarLong(D, C);
1702
1843
  }
1703
1844
  get DrawColor() {
1704
- return new U(this.imp.GetDrawColor());
1845
+ return new H(this.imp.GetDrawColor());
1705
1846
  }
1706
1847
  set DrawColor(D) {
1707
1848
  this.imp.SetDrawColor(D.getImp());
@@ -1790,8 +1931,8 @@ class H {
1790
1931
  DrawPoint(D, C) {
1791
1932
  return this.imp.DrawPoint(D, C);
1792
1933
  }
1793
- DrawSolid(D, C, B, F, A, t, e, i) {
1794
- return this.imp.DrawSolid(D, C, B, F, A, t, e, i);
1934
+ DrawSolid(D, C, B, F, A, t, e, r) {
1935
+ return this.imp.DrawSolid(D, C, B, F, A, t, e, r);
1795
1936
  }
1796
1937
  DrawMText(D, C, B, F, A, t, e) {
1797
1938
  return this.imp.DrawMText(D, C, B, F, A, t, e);
@@ -1805,8 +1946,8 @@ class H {
1805
1946
  DrawDimAligned(D, C, B, F, A, t) {
1806
1947
  return this.imp.DrawDimAligned(D, C, B, F, A, t);
1807
1948
  }
1808
- DrawDimAngular(D, C, B, F, A, t, e, i) {
1809
- return this.imp.DrawDimAngular(D, C, B, F, A, t, e, i);
1949
+ DrawDimAngular(D, C, B, F, A, t, e, r) {
1950
+ return this.imp.DrawDimAngular(D, C, B, F, A, t, e, r);
1810
1951
  }
1811
1952
  DrawDimDiametric(D, C, B, F, A) {
1812
1953
  return this.imp.DrawDimDiametric(D, C, B, F, A);
@@ -1848,28 +1989,28 @@ class H {
1848
1989
  return this.imp.DrawEntity(D.getImp());
1849
1990
  }
1850
1991
  ObjectIdToObject(D) {
1851
- return r.App.ObjectIdToObject(D);
1992
+ return i.App.ObjectIdToObject(D);
1852
1993
  }
1853
1994
  DestroyObject(D) {
1854
- !D || r.App.getImp().DestroyObject(D);
1995
+ !D || i.App.getImp().DestroyObject(D);
1855
1996
  }
1856
1997
  GetAllLayoutName() {
1857
- return new RD(this.imp.GetAllLayoutName());
1998
+ return new LD(this.imp.GetAllLayoutName());
1858
1999
  }
1859
2000
  SetCurrentLayout(D) {
1860
2001
  this.imp.SetCurrentLayout(P.encodeToGb2312(D));
1861
2002
  }
1862
2003
  GetMxCpp() {
1863
- return r;
2004
+ return i;
1864
2005
  }
1865
2006
  docCoord2Cad(D) {
1866
- return new u(this.imp.mxdrawObject.docCoord2Cad(D.x, D.y, D.z));
2007
+ return new a(this.imp.mxdrawObject.docCoord2Cad(D.x, D.y, D.z));
1867
2008
  }
1868
2009
  }
1869
- class WD {
2010
+ class KD {
1870
2011
  imp;
1871
2012
  init(D) {
1872
- this.imp = D, y.kZAxis = new y(0, 0, 1), y.kNegateZAxis = new y(0, 0, -1), y.kXAxis = new y(1, 0, 0), y.kYAxis = new y(0, 1, 0), u.kOrigin = new u(0, 0, 0), I.kIdentity = new I();
2013
+ this.imp = D, y.kZAxis = new y(0, 0, 1), y.kNegateZAxis = new y(0, 0, -1), y.kXAxis = new y(1, 0, 0), y.kYAxis = new y(0, 1, 0), a.kOrigin = new a(0, 0, 0), I.kIdentity = new I();
1873
2014
  }
1874
2015
  getImp() {
1875
2016
  return this.imp;
@@ -1879,14 +2020,14 @@ class WD {
1879
2020
  }
1880
2021
  CreateMxCAD(D, C, B, F, A) {
1881
2022
  let t = this.imp.CreateMxDraw(D, C, B, F, A);
1882
- return new H(t);
2023
+ return new _(t);
1883
2024
  }
1884
2025
  DestroyObject(D) {
1885
2026
  this.imp.DestroyObject(D);
1886
2027
  }
1887
2028
  GetCurrentMxCAD() {
1888
2029
  let D = this.imp.GetCurrentMxDraw();
1889
- return D.McObject || (D.McObject = new H(this.imp.GetCurrentMxDraw())), D.McObject;
2030
+ return D.McObject || (D.McObject = new _(this.imp.GetCurrentMxDraw())), D.McObject;
1890
2031
  }
1891
2032
  mcedRGB2Index(D, C, B, F = !0) {
1892
2033
  return this.imp.mcedRGB2Index(D, C, B, F);
@@ -1900,34 +2041,43 @@ class WD {
1900
2041
  let C = this.imp.ObjectIdToObjectName(D);
1901
2042
  if (C == "McDbLine") {
1902
2043
  let B = this.imp.ObjectIdToMdDbLine(D);
1903
- return new DD(B);
2044
+ return new X(B);
1904
2045
  } else if (C == "McDbText") {
1905
2046
  let B = this.imp.ObjectIdToMdDbText(D);
1906
- return new nD(B);
2047
+ return new aD(B);
1907
2048
  } else if (C == "McDbPolyline") {
1908
2049
  let B = this.imp.ObjectIdToMdDbPolyline(D);
1909
- return new BD(B);
2050
+ return new CD(B);
1910
2051
  } else if (C == "McDbCircle") {
1911
2052
  let B = this.imp.ObjectIdToMdDbCircle(D);
1912
- return new G(B);
2053
+ return new W(B);
1913
2054
  } else if (C == "McDbArc") {
1914
2055
  let B = this.imp.ObjectIdToMdDbArc(D);
1915
- return new ED(B);
2056
+ return new BD(B);
1916
2057
  } else if (C == "McDbBlockReference") {
1917
2058
  let B = this.imp.ObjectIdToMdDbBlockReference(D);
1918
- return new oD(B);
2059
+ return new uD(B);
1919
2060
  } else if (C == "McDbAlignedDimension") {
1920
2061
  let B = this.imp.ObjectIdToMdDbAlignedDimension(D);
1921
- return new aD(B);
2062
+ return new lD(B);
1922
2063
  } else if (C == "McDbRotatedDimension") {
1923
2064
  let B = this.imp.ObjectIdToMdDbRotatedDimension(D);
1924
- return new uD(B);
2065
+ return new cD(B);
1925
2066
  } else if (C == "McDbMText") {
1926
2067
  let B = this.imp.ObjectIdToMdDbMText(D);
1927
- return new CD(B);
2068
+ return new DD(B);
2069
+ } else if (C == "McDbEllipse") {
2070
+ let B = this.imp.ObjectIdToMdDbEllipse(D);
2071
+ return new FD(B);
2072
+ } else if (C == "McDbPoint") {
2073
+ let B = this.imp.ObjectIdToMdDbPoint(D);
2074
+ return new dD(B);
2075
+ } else if (this.imp.ObjectIdIsKindOf(D, "McDbCurve")) {
2076
+ let B = this.imp.ObjectIdToMdDbCurve(D);
2077
+ return new V(B);
1928
2078
  } else if (this.imp.ObjectIdIsKindOf(D, "McDbEntity")) {
1929
2079
  let B = this.imp.ObjectIdToMdDbEntity(D);
1930
- return new W(B);
2080
+ return new G(B);
1931
2081
  } else {
1932
2082
  let B = this.imp.ObjectIdToMdObject(D);
1933
2083
  return new j(B);
@@ -1937,7 +2087,7 @@ class WD {
1937
2087
  if (!D)
1938
2088
  return null;
1939
2089
  let C = D.getObjectName(), B = null;
1940
- return C == "McDbLine" ? B = new DD() : C == "McDbText" ? B = new nD() : C == "McDbPolyline" ? B = new BD() : C == "McDbCircle" ? B = new G() : C == "McDbArc" ? B = new ED() : C == "McDbBlockReference" ? B = new oD() : C == "McDbAlignedDimension" ? B = new aD() : C == "McDbRotatedDimension" ? B = new uD() : C == "McDbMText" ? B = new CD() : D.isKindOf("McDbEntity") && (B = new W(), B.initTempObject(new r.mxcadassemblyimp.MdDbEntity())), B ? (B.getImp().ConnectionTempObject(D), r.App.DestroyObject(D), B) : new j(D);
2090
+ return C == "McDbLine" ? B = new X() : C == "McDbText" ? B = new aD() : C == "McDbPolyline" ? B = new CD() : C == "McDbCircle" ? B = new W() : C == "McDbArc" ? B = new BD() : C == "McDbBlockReference" ? B = new uD() : C == "McDbAlignedDimension" ? B = new lD() : C == "McDbRotatedDimension" ? B = new cD() : C == "McDbMText" ? B = new DD() : D.isKindOf("McDbCurve") ? (B = new V(), B.initTempObject(new i.mxcadassemblyimp.MdDbCurve())) : D.isKindOf("McDbEntity") && (B = new G(), B.initTempObject(new i.mxcadassemblyimp.MdDbEntity())), B ? (B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B) : new j(D);
1941
2091
  }
1942
2092
  setFontFilePath(D) {
1943
2093
  this.imp.setFontFilePath(D);
@@ -1948,9 +2098,9 @@ class WD {
1948
2098
  });
1949
2099
  }
1950
2100
  }
1951
- class VD {
2101
+ class HD {
1952
2102
  mxcadassemblyimp;
1953
- App = new WD();
2103
+ App = new KD();
1954
2104
  getCallResult() {
1955
2105
  return this.App.getLastCallResult();
1956
2106
  }
@@ -1959,7 +2109,7 @@ class VD {
1959
2109
  let F = D.z || 0;
1960
2110
  D = h.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
1961
2111
  }
1962
- let B = new u();
2112
+ let B = new a();
1963
2113
  return D && D.x && D.y && (B.x = D.x, B.y = D.y, D.z && (B.y = D.z)), B;
1964
2114
  }
1965
2115
  GetCurrentMxCAD() {
@@ -1969,43 +2119,43 @@ class VD {
1969
2119
  return this.App.GetCurrentMxCAD().GetDatabase();
1970
2120
  }
1971
2121
  }
1972
- const pD = "1.0.75", nC = "SharedArrayBuffer" in window, AD = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), oC = (E, D = self.location.href) => AD ? `https://unpkg.com/mxcad@${pD}/dist/wasm/2d-st/${E}` : D + E, aC = (E, D = self.location.href) => AD ? `https://unpkg.com/mxcad@${pD}/dist/wasm/2d/${E}` : D + E, uC = (E, D = self.location.href) => AD ? `https://unpkg.com/mxcad@${pD}/dist/wasm/3d/${E}` : D + E, UD = (E) => new Promise((D, C) => {
2122
+ const hD = "1.0.76", lC = "SharedArrayBuffer" in window, tD = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), cC = (E, D = self.location.href) => tD ? `https://unpkg.com/mxcad@${hD}/dist/wasm/2d-st/${E}` : D + E, mC = (E, D = self.location.href) => tD ? `https://unpkg.com/mxcad@${hD}/dist/wasm/2d/${E}` : D + E, pC = (E, D = self.location.href) => tD ? `https://unpkg.com/mxcad@${hD}/dist/wasm/3d/${E}` : D + E, ND = (E) => new Promise((D, C) => {
1973
2123
  const B = document.createElement("script");
1974
2124
  B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
1975
2125
  D();
1976
2126
  }, B.onerror = (F) => {
1977
2127
  C(F);
1978
2128
  };
1979
- }), lC = async (E, D, C) => {
2129
+ }), dC = async (E, D, C) => {
1980
2130
  const { locateFile: B } = C, F = B(E + ".js");
1981
- return await UD(F), await globalThis[D](C);
2131
+ return await ND(F), await globalThis[D](C);
1982
2132
  };
1983
- let r;
1984
- async function zD(E, D = nC || !AD ? oC : aC, C, B, F) {
2133
+ let i;
2134
+ async function _D(E, D = lC || !tD ? cC : mC, C, B, F) {
1985
2135
  return new Promise(async (A, t) => {
1986
2136
  try {
1987
- if (r || (r = new VD()), r.mxcadassemblyimp)
1988
- return E && E(r), A(r);
1989
- const i = await lC("mxdrawassembly_min", "mxdrawassembly", {
2137
+ if (i || (i = new HD()), i.mxcadassemblyimp)
2138
+ return E && E(i), A(i);
2139
+ const r = await dC("mxdrawassembly_min", "mxdrawassembly", {
1990
2140
  locateFile: D,
1991
2141
  wasmBinary: C
1992
2142
  });
1993
- r.mxcadassemblyimp = i;
1994
- let s = new i.McApp();
1995
- B && s.setFontFilePath(B), s.Init(), r.App.init(s), F && r.App.addNetworkLoadingFont(F), E && E(r), A(r);
2143
+ i.mxcadassemblyimp = r;
2144
+ let s = new r.McApp();
2145
+ B && s.setFontFilePath(B), s.Init(), i.App.init(s), F && i.App.addNetworkLoadingFont(F), E && E(i), A(i);
1996
2146
  } catch (e) {
1997
2147
  t(e);
1998
2148
  }
1999
2149
  });
2000
2150
  }
2001
- const cC = (E) => {
2151
+ const hC = (E) => {
2002
2152
  let D = null;
2003
2153
  if (typeof E == "string" ? D = document.querySelector(E) : E instanceof HTMLCanvasElement && (D = E), !!D)
2004
2154
  return D.id || (D.id = Math.random().toString(16).slice(2)), D.id;
2005
- }, mC = (E, D) => new Promise((C, B) => {
2155
+ }, yC = (E, D) => new Promise((C, B) => {
2006
2156
  try {
2007
2157
  h.createMxObject({
2008
- canvasId: cC(E),
2158
+ canvasId: hC(E),
2009
2159
  isCPPMxCAD: !0,
2010
2160
  userIdentitySign: D,
2011
2161
  callback(F) {
@@ -2017,28 +2167,28 @@ const cC = (E) => {
2017
2167
  } catch (F) {
2018
2168
  B(F);
2019
2169
  }
2020
- }), pC = async (E) => {
2021
- xD.state.MxFun || await XD();
2022
- const { multipleSelect: D, networkFonts: C, fontspath: B, locateFile: F, wasmBinary: A, canvas: t, userIdentitySign: e, onOpenFileComplete: i, fileUrl: s, onInit: o = () => {
2170
+ }), wC = async (E) => {
2171
+ MD.state.MxFun || await EC();
2172
+ const { multipleSelect: D, networkFonts: C, fontspath: B, locateFile: F, wasmBinary: A, canvas: t, userIdentitySign: e, onOpenFileComplete: r, fileUrl: s, onInit: o = () => {
2023
2173
  h.setIniset({
2024
2174
  EnableIntelliSelect: !0,
2025
2175
  IntelliSelectType: 1,
2026
2176
  multipleSelect: !!D
2027
2177
  });
2028
2178
  } } = E || {};
2029
- await zD(() => {
2179
+ await _D(() => {
2030
2180
  }, F, A, B, C), o();
2031
- let a = await mC(t, e);
2181
+ let u = await yC(t, e);
2032
2182
  const l = h.getMxFunTHREE();
2033
2183
  let c = new l.Vector2();
2034
- a.getRenderer().getSize(c);
2035
- const n = r.App.CreateMxCAD(c.width, c.height, a.getCanvas().id, a.isWebgl2(), a.getId());
2036
- return a.initMxCpp(n), a.addEvent("openFileComplete", () => {
2037
- i && i();
2184
+ u.getRenderer().getSize(c);
2185
+ const n = i.App.CreateMxCAD(c.width, c.height, u.getCanvas().id, u.isWebgl2(), u.getId());
2186
+ return u.initMxCpp(n), u.addEvent("openFileComplete", () => {
2187
+ r && r();
2038
2188
  }), s && n.openWebFile(s), n;
2039
2189
  };
2040
- async function dC() {
2041
- const E = new S();
2190
+ async function gC() {
2191
+ const E = new O();
2042
2192
  E.setMessage(`
2043
2193
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
2044
2194
  let D = await E.go();
@@ -2057,7 +2207,7 @@ async function dC() {
2057
2207
  };
2058
2208
  h.call("Mx_Text", F);
2059
2209
  }
2060
- class hC extends bD {
2210
+ class bC extends PD {
2061
2211
  getGripPoints() {
2062
2212
  const { x: D, y: C, z: B } = this.center;
2063
2213
  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);
@@ -2068,13 +2218,13 @@ class hC extends bD {
2068
2218
  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;
2069
2219
  }
2070
2220
  }
2071
- const hD = (E) => {
2072
- const [D, C, B] = E, { x: F, y: A, z: t } = D, { x: e, y: i, z: s } = C, { x: o, y: a, z: l } = B, c = A * s - i * t - A * l + a * t + i * l - a * s, n = -(F * s - e * t - F * l + o * t + e * l - o * s), m = F * i - e * A - F * a + o * A + e * a - o * i, w = -(F * i * l - F * a * s - e * A * l + e * a * t + o * A * s - o * i * t), x = 2 * (e - F), p = 2 * (i - A), d = 2 * (s - t), f = F * F + A * A + t * t - e * e - i * i - s * s, b = 2 * (o - F), g = 2 * (a - A), M = 2 * (l - t), O = F * F + A * A + t * t - o * o - a * a - l * l, Z = -(n * d * O - n * M * f - p * m * O + p * M * w + g * m * f - g * d * w) / (c * p * M - c * g * d - x * n * M + x * g * m + b * n * d - b * p * m), JD = (c * d * O - c * M * f - x * m * O + x * M * w + b * m * f - b * d * w) / (c * p * M - c * g * d - x * n * M + x * g * m + b * n * d - b * p * m), YD = -(c * p * O - c * g * f - x * n * O + x * g * w + b * n * f - b * p * w) / (c * p * M - c * g * d - x * n * M + x * g * m + b * n * d - b * p * m);
2073
- return new THREE.Vector3(Z, JD, YD);
2221
+ const wD = (E) => {
2222
+ const [D, C, B] = E, { x: F, y: A, z: t } = D, { x: e, y: r, z: s } = C, { x: o, y: u, z: l } = B, c = A * s - r * t - A * l + u * t + r * l - u * s, n = -(F * s - e * t - F * l + o * t + e * l - o * s), m = F * r - e * A - F * u + o * A + e * u - o * r, w = -(F * r * l - F * u * s - e * A * l + e * u * t + o * A * s - o * r * t), b = 2 * (e - F), p = 2 * (r - A), d = 2 * (s - t), x = F * F + A * A + t * t - e * e - r * r - s * s, f = 2 * (o - F), g = 2 * (u - A), M = 2 * (l - t), L = F * F + A * A + t * t - o * o - u * u - l * l, $ = -(n * d * L - n * M * x - p * m * L + p * M * w + g * m * x - g * d * w) / (c * p * M - c * g * d - b * n * M + b * g * m + f * n * d - f * p * m), DC = (c * d * L - c * M * x - b * m * L + b * M * w + f * m * x - f * d * w) / (c * p * M - c * g * d - b * n * M + b * g * m + f * n * d - f * p * m), CC = -(c * p * L - c * g * x - b * n * L + b * g * w + f * n * x - f * p * w) / (c * p * M - c * g * d - b * n * M + b * g * m + f * n * d - f * p * m);
2223
+ return new THREE.Vector3($, DC, CC);
2074
2224
  };
2075
- function KD() {
2076
- const E = new S();
2077
- let D = new hC(), C = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2225
+ function qD() {
2226
+ const E = new O();
2227
+ let D = new bC(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2078
2228
  v.use(D), D.closed = !1, D.setColor(C);
2079
2229
  let B = 0, F = "default", A = !0;
2080
2230
  const t = () => {
@@ -2090,44 +2240,44 @@ function KD() {
2090
2240
  E.setMessage(`
2091
2241
  \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), t();
2092
2242
  else if (B === 1)
2093
- return r.GetCurrentMxCAD().DrawEntity(new G(D.center.x, D.center.y, 0, D.radius)), !0;
2243
+ return i.GetCurrentMxCAD().DrawEntity(new W(D.center.x, D.center.y, 0, D.radius)), !0;
2094
2244
  B++;
2095
2245
  }
2096
2246
  n === T.kKeyWord && E.isKeyWordPicked("D") && (A = !1, t(), E.setMessage(`
2097
2247
  \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
2098
2248
  }
2099
2249
  };
2100
- let i = [];
2250
+ let r = [];
2101
2251
  const s = (n) => {
2102
2252
  if (F === "3P" && (E.setMessage(`
2103
2253
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === T.kOk)) {
2104
- if (B === 0 && (i.push(E.value()), E.setUserDraw((m, w) => {
2105
- w.drawLine(i[0], m);
2254
+ if (B === 0 && (r.push(E.value()), E.setUserDraw((m, w) => {
2255
+ w.drawLine(r[0], m);
2106
2256
  }), E.setMessage(`
2107
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (i.push(E.value()), E.setUserDraw((m, w) => {
2108
- const [x, p] = i, d = m;
2109
- D.center = hD([
2110
- x,
2257
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (r.push(E.value()), E.setUserDraw((m, w) => {
2258
+ const [b, p] = r, d = m;
2259
+ D.center = wD([
2260
+ b,
2111
2261
  p,
2112
2262
  d
2113
- ]), D.radius = D.center.distanceTo(x), w.drawCustomEntity(D);
2263
+ ]), D.radius = D.center.distanceTo(b), w.drawCustomEntity(D);
2114
2264
  }), E.setMessage(`
2115
2265
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), B === 2)
2116
- return i.push(E.value()), D.center = hD(i), D.radius = D.center.distanceTo(i[0]), r.GetCurrentMxCAD().DrawEntity(new G(D.center.x, D.center.y, 0, D.radius)), !0;
2266
+ return r.push(E.value()), D.center = wD(r), D.radius = D.center.distanceTo(r[0]), i.GetCurrentMxCAD().DrawEntity(new W(D.center.x, D.center.y, 0, D.radius)), !0;
2117
2267
  B++;
2118
2268
  }
2119
2269
  };
2120
2270
  let o;
2121
- const a = (n, m) => {
2271
+ const u = (n, m) => {
2122
2272
  new THREE.Line3(n, m).getCenter(D.center), D.radius = m.distanceTo(n) / 2;
2123
2273
  }, l = (n) => {
2124
2274
  if (F === "2P" && (E.setMessage(`
2125
2275
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === T.kOk)) {
2126
2276
  if (B === 0 && (o = E.value(), E.setUserDraw((m, w) => {
2127
- a(o, m), w.drawCustomEntity(D), w.drawLine(o, m);
2277
+ u(o, m), w.drawCustomEntity(D), w.drawLine(o, m);
2128
2278
  }), E.setMessage(`
2129
2279
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), B === 1)
2130
- return a(o, E.value()), r.GetCurrentMxCAD().DrawEntity(new G(D.center.x, D.center.y, 0, D.radius)), !0;
2280
+ return u(o, E.value()), i.GetCurrentMxCAD().DrawEntity(new W(D.center.x, D.center.y, 0, D.radius)), !0;
2131
2281
  B++;
2132
2282
  }
2133
2283
  }, c = (n) => {
@@ -2158,20 +2308,20 @@ function KD() {
2158
2308
  return { exit: !0 };
2159
2309
  },
2160
2310
  (n) => {
2161
- n === T.kCancel && r.GetCurrentMxCAD().DrawEntity(new G(D.center.x, D.center.y, 0, D.radius));
2311
+ n === T.kCancel && i.GetCurrentMxCAD().DrawEntity(new W(D.center.x, D.center.y, 0, D.radius));
2162
2312
  }
2163
2313
  );
2164
2314
  }
2165
2315
  h.on("init", () => {
2166
- h.addCommand("Mx_Circle", KD);
2316
+ h.addCommand("Mx_Circle", qD);
2167
2317
  });
2168
- const yD = () => xD.state.MxFun.stopRunCommand();
2169
- function iD(E, D, C, B) {
2318
+ const gD = () => MD.state.MxFun.stopRunCommand();
2319
+ function rD(E, D, C, B) {
2170
2320
  const F = E - C, A = D - B;
2171
2321
  let t = 0;
2172
2322
  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;
2173
2323
  }
2174
- const L = (E, D, C) => {
2324
+ const S = (E, D, C) => {
2175
2325
  const B = () => {
2176
2326
  E.go((F) => {
2177
2327
  if (F === T.kKeyWord && C() && B(), F === T.kOk && D() && B(), F === T.kNone && B(), F === T.kCancel)
@@ -2180,17 +2330,17 @@ const L = (E, D, C) => {
2180
2330
  };
2181
2331
  return B;
2182
2332
  };
2183
- async function HD() {
2184
- const E = new S();
2185
- let D = new X(), C = r.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2333
+ async function ZD() {
2334
+ const E = new O();
2335
+ let D = new Q(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2186
2336
  E.setMessage(`
2187
2337
  \u6307\u5B9A\u7B2C\u4E00\u70B9:`);
2188
2338
  let F = await E.go();
2189
2339
  if (!F)
2190
2340
  return;
2191
2341
  E.setUserDraw((t, e) => {
2192
- e.setColor(C), B.forEach((i) => {
2193
- i.color = C, e.drawCustomEntity(i);
2342
+ e.setColor(C), B.forEach((r) => {
2343
+ r.color = C, e.drawCustomEntity(r);
2194
2344
  }), e.drawLine(F, t);
2195
2345
  });
2196
2346
  const A = () => {
@@ -2199,12 +2349,12 @@ async function HD() {
2199
2349
  };
2200
2350
  A(), E.goWhile(
2201
2351
  (t) => {
2202
- if (t === T.kOk && (D = new X(), v.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), t === T.kKeyWord) {
2352
+ if (t === T.kOk && (D = new Q(), v.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), t === T.kKeyWord) {
2203
2353
  if (E.isKeyWordPicked("E"))
2204
- yD();
2354
+ gD();
2205
2355
  else if (E.isKeyWordPicked("C")) {
2206
- const e = new X();
2207
- return e.pt1 = F.clone(), e.pt2 = B[0].pt1.clone(), v.use(e), B.push(e), F = e.pt2.clone(), yD(), { exit: !0 };
2356
+ const e = new Q();
2357
+ return e.pt1 = F.clone(), e.pt2 = B[0].pt1.clone(), v.use(e), B.push(e), F = e.pt2.clone(), gD(), { exit: !0 };
2208
2358
  } else if (E.isKeyWordPicked("U")) {
2209
2359
  const e = B.pop();
2210
2360
  e && (F = e.pt1);
@@ -2212,15 +2362,24 @@ async function HD() {
2212
2362
  }
2213
2363
  },
2214
2364
  (t) => (t != T.kCancel && B.forEach((e) => {
2215
- r.GetCurrentMxCAD().DrawEntity(new DD(e.pt1.x, e.pt1.y, 0, e.pt2.x, e.pt2.y, 0));
2365
+ i.GetCurrentMxCAD().DrawEntity(new X(e.pt1.x, e.pt1.y, 0, e.pt2.x, e.pt2.y, 0));
2216
2366
  }), { exit: !0 })
2217
2367
  );
2218
2368
  }
2369
+ async function fC() {
2370
+ let E = new z();
2371
+ for (E.setMessage("\u6307\u5B9A\u70B9"); ; ) {
2372
+ let D = await E.go();
2373
+ if (D == null)
2374
+ break;
2375
+ i.GetCurrentMxCAD().DrawEntity(new dD(D));
2376
+ }
2377
+ }
2219
2378
  h.on("init", () => {
2220
- h.addCommand("Mx_Line", HD);
2379
+ h.addCommand("Mx_Line", ZD), h.addCommand("Mx_Point", fC);
2221
2380
  });
2222
- async function yC() {
2223
- const E = new S();
2381
+ async function xC() {
2382
+ const E = new O();
2224
2383
  E.setMessage(`
2225
2384
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
2226
2385
  let D = await E.go();
@@ -2240,10 +2399,10 @@ async function yC() {
2240
2399
  };
2241
2400
  h.call("Mx_MText", F);
2242
2401
  }
2243
- async function ND() {
2244
- const E = new S();
2245
- let D = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2246
- const C = new DC();
2402
+ async function $D() {
2403
+ const E = new O();
2404
+ let D = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2405
+ const C = new FC();
2247
2406
  v.use(C), C.color = D, E.setMessage(`
2248
2407
  \u6307\u5B9A\u8D77\u70B9:`);
2249
2408
  let B;
@@ -2259,8 +2418,8 @@ async function ND() {
2259
2418
  F === T.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
2260
2419
  },
2261
2420
  (F) => {
2262
- if (F === T.kCancel) {
2263
- let A = r.GetCurrentMxCAD(), t = new BD();
2421
+ if (F != T.kCancel) {
2422
+ let A = i.GetCurrentMxCAD(), t = new CD();
2264
2423
  for (let e = 0; e < C.points.length; e++)
2265
2424
  t.addVertexAt(C.points[e]);
2266
2425
  A.DrawEntity(t);
@@ -2269,50 +2428,50 @@ async function ND() {
2269
2428
  );
2270
2429
  }
2271
2430
  h.on("init", () => {
2272
- h.addCommand("Mx_Pline", ND);
2431
+ h.addCommand("Mx_Pline", $D);
2273
2432
  });
2274
- async function _D() {
2275
- const E = new S();
2433
+ async function JD() {
2434
+ const E = new O();
2276
2435
  E.setMessage(`
2277
2436
  \u6307\u5B9A\u4E00\u70B9:`);
2278
- let D = await E.go(), C = new G();
2437
+ let D = await E.go(), C = new W();
2279
2438
  C.setCenter(D.x, D.y, D.z);
2280
- let B = 5, F = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2439
+ let B = 5, F = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2281
2440
  E.setUserDraw((A, t) => {
2282
2441
  t.setColor(F), C.radius = D.distanceTo(A);
2283
- let e = C.getEndParam().val, s = C.getDistAtParam(e).val / B, o = 0, a = new THREE.Vector3(), l = new THREE.Vector3();
2442
+ let e = C.getEndParam().val, s = C.getDistAtParam(e).val / B, o = 0, u = new THREE.Vector3(), l = new THREE.Vector3();
2284
2443
  for (let c = 0; c < B; c++) {
2285
2444
  let n = C.getPointAtDist(o).val;
2286
- o += s, c > 0 ? t.drawMcDbLine(n.x, n.y, n.z, a.x, a.y, a.z) : l = new THREE.Vector3(n.x, n.y, n.z), c == B - 1 && t.drawMcDbLine(n.x, n.y, n.z, l.x, l.y, l.z), a = new THREE.Vector3(n.x, n.y, n.z);
2445
+ o += s, c > 0 ? t.drawMcDbLine(n.x, n.y, n.z, u.x, u.y, u.z) : l = new THREE.Vector3(n.x, n.y, n.z), c == B - 1 && t.drawMcDbLine(n.x, n.y, n.z, l.x, l.y, l.z), u = new THREE.Vector3(n.x, n.y, n.z);
2287
2446
  }
2288
2447
  }), E.setMessage(`
2289
2448
  \u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
2290
2449
  }
2291
- h.addCommand("Mx_Polygon", _D);
2292
- function wC(E, D, C) {
2293
- const B = E.x, F = D.x, A = C.x, t = E.y, e = D.y, i = C.y, s = B - F, o = t - e, a = B - A, l = t - i, c = (B * B - F * F + (t * t - e * e)) / 2, n = (B * B - A * A + (t * t - i * i)) / 2, m = o * a - s * l, w = -(l * c - o * n) / m, x = -(s * n - a * c) / m;
2294
- return new THREE.Vector3(w, x, 0);
2450
+ h.addCommand("Mx_Polygon", JD);
2451
+ function MC(E, D, C) {
2452
+ 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, u = B - A, l = t - r, c = (B * B - F * F + (t * t - e * e)) / 2, n = (B * B - A * A + (t * t - r * r)) / 2, m = o * u - s * l, w = -(l * c - o * n) / m, b = -(s * n - u * c) / m;
2453
+ return new THREE.Vector3(w, b, 0);
2295
2454
  }
2296
- function gC(E, D) {
2455
+ function PC(E, D) {
2297
2456
  const C = E.x, B = E.y, F = D.x, A = D.y;
2298
2457
  return Math.sqrt((C - F) * (C - F) + (B - A) * (B - A));
2299
2458
  }
2300
- function xC(E, D, C) {
2459
+ function TC(E, D, C) {
2301
2460
  let B;
2302
2461
  E < C ? B = C - E : B = C - E + 360;
2303
2462
  let F;
2304
2463
  return E < D ? F = D - E : F = D - E + 360, F > B;
2305
2464
  }
2306
- function rD(E, D, C) {
2465
+ function sD(E, D, C) {
2307
2466
  const B = E.x, F = D.x, A = E.y, t = D.y;
2308
- let e, i, s;
2309
- return e = (A - t) / C, i = (B - F) / C, i >= 0.99999 && (i = 0.99999), i <= -0.99999 && (i = -0.99999), s = Math.acos(i), s = s / Math.PI * 180, e < -0.05 && (s = 360 - s), {
2467
+ let e, r, s;
2468
+ 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), {
2310
2469
  sin: e,
2311
- cos: i,
2470
+ cos: r,
2312
2471
  angle: s
2313
2472
  };
2314
2473
  }
2315
- class dD extends bD {
2474
+ class yD extends PD {
2316
2475
  constructor() {
2317
2476
  super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
2318
2477
  }
@@ -2320,7 +2479,7 @@ class dD extends bD {
2320
2479
  return "MxDbCircle";
2321
2480
  }
2322
2481
  create() {
2323
- return new dD();
2482
+ return new yD();
2324
2483
  }
2325
2484
  getArcBulge(D, C, B) {
2326
2485
  const F = D.distanceTo(C);
@@ -2331,13 +2490,13 @@ class dD extends bD {
2331
2490
  }
2332
2491
  getArcMidPoint(D, C, B, F, A) {
2333
2492
  const t = D, e = B * Math.PI / 180;
2334
- let i = F * Math.PI / 180;
2493
+ let r = F * Math.PI / 180;
2335
2494
  const s = new THREE.Vector3(), o = new THREE.Vector3();
2336
- s.x = t.x + C * Math.cos(e), s.y = t.y + C * Math.sin(e), o.x = t.x + C * Math.cos(i), o.y = t.y + C * Math.sin(i);
2337
- const a = C;
2338
- (A ? B < F : B > F) && (i += Math.PI * 2);
2495
+ 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);
2496
+ const u = C;
2497
+ (A ? B < F : B > F) && (r += Math.PI * 2);
2339
2498
  const l = new THREE.Vector3();
2340
- return l.x = t.x + a * Math.cos((e + i) / 2), l.y = t.y + a * Math.sin((e + i) / 2), [s, l, o, this.center];
2499
+ return l.x = t.x + u * Math.cos((e + r) / 2), l.y = t.y + u * Math.sin((e + r) / 2), [s, l, o, this.center];
2341
2500
  }
2342
2501
  getGripPoints() {
2343
2502
  return this.getArcMidPoint(
@@ -2357,24 +2516,24 @@ class dD extends bD {
2357
2516
  upDatePoints(D, C, B) {
2358
2517
  D[C].add(B);
2359
2518
  const [F, A, t] = D;
2360
- this.center = wC(F, t, A), this.radius = gC(A, this.center);
2361
- const e = rD(F, this.center, this.radius), i = rD(t, this.center, this.radius), s = rD(A, this.center, this.radius);
2362
- this.clockwise = xC(
2363
- i.angle,
2519
+ this.center = MC(F, t, A), this.radius = PC(A, this.center);
2520
+ const e = sD(F, this.center, this.radius), r = sD(t, this.center, this.radius), s = sD(A, this.center, this.radius);
2521
+ this.clockwise = TC(
2522
+ r.angle,
2364
2523
  e.angle,
2365
2524
  s.angle
2366
- ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(i.angle);
2525
+ ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2367
2526
  }
2368
2527
  }
2369
- async function qD() {
2370
- let E = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2371
- const D = new S();
2528
+ async function YD() {
2529
+ let E = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2530
+ const D = new O();
2372
2531
  D.setMessage(`
2373
2532
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)]");
2374
- let C = new dD();
2533
+ let C = new yD();
2375
2534
  C.closed = !1, v.use(C);
2376
2535
  let B, F, A;
2377
- const t = L(
2536
+ const t = S(
2378
2537
  D,
2379
2538
  () => {
2380
2539
  B = D.value(), D.setMessage(`
@@ -2384,33 +2543,33 @@ async function qD() {
2384
2543
  },
2385
2544
  () => {
2386
2545
  if (D.isKeyWordPicked("C")) {
2387
- const p = new Q();
2546
+ const p = new Y();
2388
2547
  p.color = E, C.center = D.value(), p.center = D.value(), D.setMessage(`
2389
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), i();
2548
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), r();
2390
2549
  } else
2391
2550
  return !0;
2392
2551
  }
2393
2552
  );
2394
2553
  let e;
2395
- const i = L(
2554
+ const r = S(
2396
2555
  D,
2397
2556
  () => {
2398
- e = D.value(), A = new Q(), A.closed = !1, v.use(A), A.color = E, A.center = e, C.center = e, D.setMessage(`
2557
+ e = D.value(), A = new Y(), A.closed = !1, v.use(A), A.color = E, A.center = e, C.center = e, D.setMessage(`
2399
2558
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((p, d) => {
2400
2559
  d.drawCustomEntity(A), d.setColor(E), d.drawLine(e, p);
2401
- }), a();
2560
+ }), u();
2402
2561
  },
2403
2562
  () => {
2404
2563
  }
2405
2564
  );
2406
2565
  let s, o;
2407
- const a = L(
2566
+ const u = S(
2408
2567
  D,
2409
2568
  () => {
2410
2569
  s = D.value(), A.endPoint = s, D.setMessage(
2411
2570
  `
2412
2571
  \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)]:`
2413
- ), D.setKeyWords("A L R"), o = new X(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((p, d) => {
2572
+ ), D.setKeyWords("A L R"), o = new Q(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((p, d) => {
2414
2573
  A.startPoint = p, o.pt2 = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2415
2574
  }), c();
2416
2575
  },
@@ -2418,7 +2577,7 @@ async function qD() {
2418
2577
  }
2419
2578
  );
2420
2579
  let l;
2421
- const c = L(
2580
+ const c = S(
2422
2581
  D,
2423
2582
  () => {
2424
2583
  l = D.value(), A.startPoint = l, A.endPoint = s, w.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
@@ -2444,41 +2603,41 @@ async function qD() {
2444
2603
  \u6307\u5B9A\u5706\u5F27\u7684\u534A\u5F84${A.radius ? "<" + A.radius + ">" : ""}:`
2445
2604
  ), D.setKeyWords(""), D.setUserDraw((p, d) => {
2446
2605
  d.drawLine(p, A.center), A.startPoint = p, d.drawCustomEntity(A);
2447
- }), a();
2606
+ }), u();
2448
2607
  else
2449
2608
  return !0;
2450
2609
  }
2451
2610
  );
2452
2611
  let n;
2453
- const m = L(
2612
+ const m = S(
2454
2613
  D,
2455
2614
  () => {
2456
2615
  n = D.value(), D.setMessage(`
2457
- \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new CC(), F.color = E, F.autoClockwise = !0, F.closed = !1, v.use(F), D.setUserDraw((p, d) => {
2616
+ \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new AC(), F.color = E, F.autoClockwise = !0, F.closed = !1, v.use(F), D.setUserDraw((p, d) => {
2458
2617
  F.point1 = B, F.point3 = n, F.point2 = p, d.drawCustomEntity(F);
2459
- }), x();
2618
+ }), b();
2460
2619
  },
2461
2620
  () => {
2462
2621
  if (D.isKeyWordPicked("C"))
2463
- A = new Q(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2622
+ A = new Y(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2464
2623
  \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
2465
2624
  A.startPoint = B, d.drawLine(p, A.startPoint);
2466
- }), i();
2625
+ }), r();
2467
2626
  else if (D.isKeyWordPicked("E"))
2468
- A = new Q(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2627
+ A = new Y(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2469
2628
  \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
2470
2629
  A.startPoint = B, d.drawLine(p, A.startPoint);
2471
- }), i();
2630
+ }), r();
2472
2631
  else
2473
2632
  return !0;
2474
2633
  }
2475
2634
  );
2476
- let w = r.GetCurrentMxCAD();
2477
- const x = L(
2635
+ let w = i.GetCurrentMxCAD();
2636
+ const b = S(
2478
2637
  D,
2479
2638
  () => {
2480
2639
  F.point1 = B, F.point2 = D.value(), F.point3 = n;
2481
- let p = new ED();
2640
+ let p = new BD();
2482
2641
  p.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), w.DrawEntity(p);
2483
2642
  },
2484
2643
  () => {
@@ -2493,26 +2652,26 @@ async function qD() {
2493
2652
  t();
2494
2653
  }
2495
2654
  h.on("init", () => {
2496
- h.addCommand("Mx_Arc", qD);
2655
+ h.addCommand("Mx_Arc", YD);
2497
2656
  });
2498
- function ZD() {
2499
- const E = new S(), D = new BC();
2657
+ function QD() {
2658
+ const E = new O(), D = new tC();
2500
2659
  D.closed = !1, v.use(D), E.setMessage(`
2501
2660
  \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
2502
2661
  let C, B = new THREE.Vector3();
2503
- L(
2662
+ S(
2504
2663
  E,
2505
2664
  () => {
2506
2665
  C = E.value(), E.setUserDraw((s, o) => {
2507
- const a = new THREE.Line3(C, s);
2508
- a.getCenter(B), D.center = B, D.xRadius = a.distance() / 2, D.yRadius = D.xRadius, D.rotation = iD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2666
+ const u = new THREE.Line3(C, s);
2667
+ u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = rD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2509
2668
  }), E.setMessage(`
2510
2669
  \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
2511
2670
  },
2512
2671
  () => {
2513
2672
  }
2514
2673
  )();
2515
- const A = L(
2674
+ const A = S(
2516
2675
  E,
2517
2676
  () => {
2518
2677
  E.setUserDraw((s, o) => {
@@ -2522,81 +2681,81 @@ function ZD() {
2522
2681
  },
2523
2682
  () => {
2524
2683
  }
2525
- ), t = L(
2684
+ ), t = S(
2526
2685
  E,
2527
2686
  () => {
2528
2687
  E.setMessage(`
2529
2688
  \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, o) => {
2530
- D.startAngle = iD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2689
+ D.startAngle = rD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2531
2690
  }), e();
2532
2691
  },
2533
2692
  () => {
2534
2693
  }
2535
- ), e = L(
2694
+ ), e = S(
2536
2695
  E,
2537
2696
  () => {
2538
2697
  E.setUserDraw((s, o) => {
2539
- D.endAngle = iD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2698
+ D.endAngle = rD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2540
2699
  }), E.setMessage(`
2541
- \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), i();
2700
+ \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), r();
2542
2701
  },
2543
2702
  () => {
2544
2703
  }
2545
- ), i = L(
2704
+ ), r = S(
2546
2705
  E,
2547
2706
  () => {
2548
2707
  let s = new y(D.xRadius, 0, 0);
2549
- s.rotateBy(D.rotation, y.kZAxis), r.GetCurrentMxCAD().DrawEntity(new mD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2708
+ s.rotateBy(D.rotation, y.kZAxis), i.GetCurrentMxCAD().DrawEntity(new FD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2550
2709
  },
2551
2710
  () => {
2552
2711
  }
2553
2712
  );
2554
2713
  }
2555
- function bC() {
2556
- const E = new S(), D = new EC(), C = new FC();
2557
- let B = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2714
+ function kC() {
2715
+ const E = new O(), D = new eC(), C = new iC();
2716
+ let B = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2558
2717
  C.setColor(B), E.setMessage(`
2559
2718
  \u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2560
2719
  C.point1 = E.value(), D.setDraw((F) => {
2561
2720
  C.point2 = F, D.drawCustomEntity(C);
2562
2721
  }), E.setUserDraw(D), E.setMessage(`
2563
2722
  \u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2564
- r.GetCurrentMxCAD().DrawEntity(new mD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2723
+ i.GetCurrentMxCAD().DrawEntity(new FD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2565
2724
  });
2566
2725
  });
2567
2726
  }
2568
2727
  h.on("init", () => {
2569
- h.addCommand("Mx_EllipseArc", ZD), h.addCommand("Mx_Ellipse", bC);
2728
+ h.addCommand("Mx_EllipseArc", QD), h.addCommand("Mx_Ellipse", kC);
2570
2729
  });
2571
- async function $D() {
2572
- let E = z.getCurrentSelect();
2730
+ async function XD() {
2731
+ let E = U.getCurrentSelect();
2573
2732
  if (E.length > 0) {
2574
2733
  E.forEach((C) => {
2575
2734
  C.erase();
2576
2735
  });
2577
2736
  return;
2578
2737
  }
2579
- let D = new q();
2738
+ let D = new Z();
2580
2739
  !await D.userSelect(`
2581
2740
  \u9009\u62E9\u5220\u9664\u5BF9\u8C61`) || D.forEach((C) => {
2582
2741
  C.erase();
2583
2742
  });
2584
2743
  }
2585
- function tD(E) {
2744
+ function eD(E) {
2586
2745
  let D, C;
2587
2746
  if (E.forEach((B) => {
2588
2747
  let F = B.getMcDbEntity();
2589
2748
  if (F == null)
2590
2749
  return;
2591
2750
  let A = F.GetBoundingBox();
2592
- A.ret == 0 && (!D || !C ? (D = new THREE.Vector3(A.minPt.x, A.minPt.y, 0), C = new THREE.Vector3(A.maxPt.x, A.maxPt.y, 0)) : (D.x > A.minPt.x && (D.x = A.minPt.x), D.y > A.minPt.y && (D.y = A.minPt.y), C.x < A.maxPt.x && (C.x = A.maxPt.x), C.y < A.maxPt.y && (C.y = A.maxPt.y)));
2751
+ !A.ret || (!D || !C ? (D = new THREE.Vector3(A.minPt.x, A.minPt.y, 0), C = new THREE.Vector3(A.maxPt.x, A.maxPt.y, 0)) : (D.x > A.minPt.x && (D.x = A.minPt.x), D.y > A.minPt.y && (D.y = A.minPt.y), C.x < A.maxPt.x && (C.x = A.maxPt.x), C.y < A.maxPt.y && (C.y = A.maxPt.y)));
2593
2752
  }), D && C)
2594
2753
  return { minPt: D, maxPt: C };
2595
2754
  }
2596
- async function fC() {
2755
+ async function RC() {
2597
2756
  let E;
2598
- for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2599
- let t = new q();
2757
+ for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2758
+ let t = new Z();
2600
2759
  if (!await t.userSelect(`
2601
2760
  \u9009\u62E9\u590D\u5236\u5BF9\u8C61`) || (E = t.getIds(), E.length == 0))
2602
2761
  return;
@@ -2604,21 +2763,21 @@ async function fC() {
2604
2763
  }
2605
2764
  let D, C;
2606
2765
  if (E.length >= 10) {
2607
- let t = tD(E);
2766
+ let t = eD(E);
2608
2767
  t && (D = t.minPt, C = t.maxPt);
2609
2768
  }
2610
- let B = new Y();
2769
+ let B = new z();
2611
2770
  B.setMessage("\u6307\u5B9A\u57FA\u70B9");
2612
2771
  let F = await B.go();
2613
2772
  if (!F)
2614
2773
  return;
2615
2774
  B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((t, e) => {
2616
2775
  if (D && C) {
2617
- let i = t.x - F.x, s = t.y - F.y, o = new THREE.Vector3(D.x + i, C.y + s, 0), a = new THREE.Vector3(C.x + i, D.y + s, 0), l = new THREE.Vector3(o.x, a.y, 0), c = new THREE.Vector3(a.x, o.y, 0);
2618
- e.drawLine(c, o), e.drawLine(o, l), e.drawLine(l, a), e.drawLine(a, c);
2776
+ let r = t.x - F.x, s = t.y - F.y, o = new THREE.Vector3(D.x + r, C.y + s, 0), u = new THREE.Vector3(C.x + r, D.y + s, 0), l = new THREE.Vector3(o.x, u.y, 0), c = new THREE.Vector3(u.x, o.y, 0);
2777
+ e.drawLine(c, o), e.drawLine(o, l), e.drawLine(l, u), e.drawLine(u, c);
2619
2778
  }
2620
- for (let i = 0; i < E.length && i < 10; i++) {
2621
- let s = E[i].clone();
2779
+ for (let r = 0; r < E.length && r < 10; r++) {
2780
+ let s = E[r].clone();
2622
2781
  !s || (s.Move(F, t), e.drawMcDbEntity(s));
2623
2782
  }
2624
2783
  });
@@ -2626,13 +2785,13 @@ async function fC() {
2626
2785
  if (!!A)
2627
2786
  for (let t = 0; t < E.length; t++) {
2628
2787
  let e = E[t].clone();
2629
- !e || (e.Move(F, A), r.GetCurrentMxCAD().DrawEntity(e));
2788
+ !e || (e.Move(F, A), i.GetCurrentMxCAD().DrawEntity(e));
2630
2789
  }
2631
2790
  }
2632
- async function MC() {
2791
+ async function OC() {
2633
2792
  let E;
2634
- for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2635
- let t = new q();
2793
+ for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2794
+ let t = new Z();
2636
2795
  if (!await t.userSelect(`
2637
2796
  \u9009\u62E9\u79FB\u52A8\u5BF9\u8C61`) || (E = t.getIds(), E.length == 0))
2638
2797
  return;
@@ -2640,21 +2799,21 @@ async function MC() {
2640
2799
  }
2641
2800
  let D, C;
2642
2801
  if (E.length >= 10) {
2643
- let t = tD(E);
2802
+ let t = eD(E);
2644
2803
  t && (D = t.minPt, C = t.maxPt);
2645
2804
  }
2646
- let B = new Y();
2805
+ let B = new z();
2647
2806
  B.setMessage("\u6307\u5B9A\u57FA\u70B9");
2648
2807
  let F = await B.go();
2649
2808
  if (!F)
2650
2809
  return;
2651
2810
  B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((t, e) => {
2652
2811
  if (D && C) {
2653
- let i = t.x - F.x, s = t.y - F.y, o = new THREE.Vector3(D.x + i, C.y + s, 0), a = new THREE.Vector3(C.x + i, D.y + s, 0), l = new THREE.Vector3(o.x, a.y, 0), c = new THREE.Vector3(a.x, o.y, 0);
2654
- e.drawLine(c, o), e.drawLine(o, l), e.drawLine(l, a), e.drawLine(a, c);
2812
+ let r = t.x - F.x, s = t.y - F.y, o = new THREE.Vector3(D.x + r, C.y + s, 0), u = new THREE.Vector3(C.x + r, D.y + s, 0), l = new THREE.Vector3(o.x, u.y, 0), c = new THREE.Vector3(u.x, o.y, 0);
2813
+ e.drawLine(c, o), e.drawLine(o, l), e.drawLine(l, u), e.drawLine(u, c);
2655
2814
  }
2656
- for (let i = 0; i < E.length && i < 10; i++) {
2657
- let s = E[i].clone();
2815
+ for (let r = 0; r < E.length && r < 10; r++) {
2816
+ let s = E[r].clone();
2658
2817
  !s || (s.Move(F, t), e.drawMcDbEntity(s));
2659
2818
  }
2660
2819
  });
@@ -2665,109 +2824,152 @@ async function MC() {
2665
2824
  !e || e.Move(F, A);
2666
2825
  }
2667
2826
  }
2668
- async function PC() {
2827
+ async function SC() {
2669
2828
  let E;
2670
- for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2671
- let l = new q();
2829
+ for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2830
+ let l = new Z();
2672
2831
  if (!await l.userSelect(`
2673
2832
  \u9009\u62E9\u65CB\u8F6C\u5BF9\u8C61`) || (E = l.getIds(), E.length == 0))
2674
2833
  return;
2675
2834
  break;
2676
2835
  }
2677
- let D, C, B = tD(E);
2836
+ let D, C, B = eD(E);
2678
2837
  B && (D = B.minPt, C = B.maxPt);
2679
- let F = new Y();
2838
+ let F = new z();
2680
2839
  F.setMessage("\u6307\u5B9A\u57FA\u70B9");
2681
2840
  let A = await F.go();
2682
2841
  if (A == null)
2683
2842
  return;
2684
2843
  F.setMessage("\u6307\u5B9A\u65CB\u8F6C\u89D2\u5EA6"), F.setBasePt(A), F.setUseBasePt(!0), F.setUserDraw((l, c) => {
2685
- let n = l, m = A, x = n.sub(m).angleTo2(y.kXAxis, y.kNegateZAxis), p = new I();
2686
- if (p.setToRotation(x, y.kZAxis, m), D && C) {
2687
- let d = new u(D.x, C.y, 0), f = new u(C.x, D.y, 0), b = new u(d.x, f.y, 0), g = new u(f.x, d.y, 0);
2688
- d.transformBy(p), f.transformBy(p), b.transformBy(p), g.transformBy(p), c.drawLine(g.toVector3(), d.toVector3()), c.drawLine(d.toVector3(), b.toVector3()), c.drawLine(b.toVector3(), f.toVector3()), c.drawLine(f.toVector3(), g.toVector3());
2844
+ let n = l, m = A, b = n.sub(m).angleTo2(y.kXAxis, y.kNegateZAxis), p = new I();
2845
+ if (p.setToRotation(b, y.kZAxis, m), D && C) {
2846
+ let d = new a(D.x, C.y, 0), x = new a(C.x, D.y, 0), f = new a(d.x, x.y, 0), g = new a(x.x, d.y, 0);
2847
+ d.transformBy(p), x.transformBy(p), f.transformBy(p), g.transformBy(p), c.drawLine(g.toVector3(), d.toVector3()), c.drawLine(d.toVector3(), f.toVector3()), c.drawLine(f.toVector3(), x.toVector3()), c.drawLine(x.toVector3(), g.toVector3());
2689
2848
  }
2690
- m = r.GetCurrentMxCAD().docCoord2Cad(m), p.setToRotation(x, y.kZAxis, m);
2849
+ m = i.GetCurrentMxCAD().docCoord2Cad(m), p.setToRotation(b, y.kZAxis, m);
2691
2850
  for (let d = 0; d < E.length && d < 10; d++) {
2692
- let f = E[d].clone();
2693
- !f || (f.TransformBy(p), c.drawMcDbEntity(f));
2851
+ let x = E[d].clone();
2852
+ !x || (x.TransformBy(p), c.drawMcDbEntity(x));
2694
2853
  }
2695
2854
  });
2696
2855
  let t = await F.go();
2697
2856
  if (!t)
2698
2857
  return;
2699
- let e = t, i = A, o = e.sub(i).angleTo2(y.kXAxis, y.kNegateZAxis), a = new I();
2700
- i = r.GetCurrentMxCAD().docCoord2Cad(i), a.setToRotation(o, y.kZAxis, i);
2858
+ let e = t, r = A, o = e.sub(r).angleTo2(y.kXAxis, y.kNegateZAxis), u = new I();
2859
+ r = i.GetCurrentMxCAD().docCoord2Cad(r), u.setToRotation(o, y.kZAxis, r);
2701
2860
  for (let l = 0; l < E.length; l++) {
2702
2861
  let c = E[l].getMcDbObject();
2703
- !c || c.TransformBy(a);
2862
+ !c || c.TransformBy(u);
2704
2863
  }
2705
2864
  }
2706
- async function TC() {
2865
+ async function LC() {
2707
2866
  let E;
2708
- for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2709
- let m = new q();
2867
+ for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2868
+ let m = new Z();
2710
2869
  if (!await m.userSelect(`
2711
2870
  \u9009\u62E9\u7F29\u653E\u5BF9\u8C61`) || (E = m.getIds(), E.length == 0))
2712
2871
  return;
2713
2872
  break;
2714
2873
  }
2715
- let D, C, B = tD(E);
2874
+ let D, C, B = eD(E);
2716
2875
  if (!B)
2717
2876
  return;
2718
2877
  D = B.minPt, C = B.maxPt;
2719
2878
  let F = C.x - D.x, A = C.y - D.y, t = (F + A) / 3;
2720
2879
  t < 1e-5 && (t = 1);
2721
- let e = new Y();
2880
+ let e = new z();
2722
2881
  e.setMessage("\u6307\u5B9A\u57FA\u70B9");
2723
- let i = await e.go();
2724
- if (i == null)
2882
+ let r = await e.go();
2883
+ if (r == null)
2725
2884
  return;
2726
- e.setMessage("\u6307\u5B9A\u6BD4\u4F8B\u56E0\u5B50"), e.setBasePt(i), e.setUseBasePt(!0), e.setUserDraw((m, w) => {
2727
- let x = new u(m), p = new u(i), d = x.distanceTo(p);
2885
+ e.setMessage("\u6307\u5B9A\u6BD4\u4F8B\u56E0\u5B50"), e.setBasePt(r), e.setUseBasePt(!0), e.setUserDraw((m, w) => {
2886
+ let b = new a(m), p = new a(r), d = b.distanceTo(p);
2728
2887
  if (d < 1e-5)
2729
2888
  return;
2730
- let f = d / t;
2731
- f > 1e5 && (f = 1e5);
2732
- let b = new I();
2733
- if (b.setToScaling(f, p), D && C) {
2734
- let g = new u(D.x, C.y, 0), M = new u(C.x, D.y, 0), O = new u(g.x, M.y, 0), Z = new u(M.x, g.y, 0);
2735
- g.transformBy(b), M.transformBy(b), O.transformBy(b), Z.transformBy(b), w.drawLine(Z.toVector3(), g.toVector3()), w.drawLine(g.toVector3(), O.toVector3()), w.drawLine(O.toVector3(), M.toVector3()), w.drawLine(M.toVector3(), Z.toVector3());
2889
+ let x = d / t;
2890
+ x > 1e5 && (x = 1e5);
2891
+ let f = new I();
2892
+ if (f.setToScaling(x, p), D && C) {
2893
+ let g = new a(D.x, C.y, 0), M = new a(C.x, D.y, 0), L = new a(g.x, M.y, 0), $ = new a(M.x, g.y, 0);
2894
+ g.transformBy(f), M.transformBy(f), L.transformBy(f), $.transformBy(f), w.drawLine($.toVector3(), g.toVector3()), w.drawLine(g.toVector3(), L.toVector3()), w.drawLine(L.toVector3(), M.toVector3()), w.drawLine(M.toVector3(), $.toVector3());
2736
2895
  }
2737
- p = r.GetCurrentMxCAD().docCoord2Cad(p), b.setToScaling(f, p);
2896
+ p = i.GetCurrentMxCAD().docCoord2Cad(p), f.setToScaling(x, p);
2738
2897
  for (let g = 0; g < E.length && g < 10; g++) {
2739
2898
  let M = E[g].clone();
2740
- !M || (M.TransformBy(b), w.drawMcDbEntity(M));
2899
+ !M || (M.TransformBy(f), w.drawMcDbEntity(M));
2741
2900
  }
2742
2901
  });
2743
2902
  let s = await e.go();
2744
2903
  if (!s)
2745
2904
  return;
2746
- let o = s, a = i, l = o.distanceTo(a);
2905
+ let o = s, u = r, l = o.distanceTo(u);
2747
2906
  if (l < 1e-5)
2748
2907
  return;
2749
2908
  let c = l / t;
2750
2909
  c > 1e5 && (c = 1e5);
2751
2910
  let n = new I();
2752
- a = r.GetCurrentMxCAD().docCoord2Cad(a), n.setToScaling(c, a);
2911
+ u = i.GetCurrentMxCAD().docCoord2Cad(u), n.setToScaling(c, u);
2753
2912
  for (let m = 0; m < E.length; m++) {
2754
2913
  let w = E[m].getMcDbObject();
2755
2914
  !w || w.TransformBy(n);
2756
2915
  }
2757
2916
  }
2917
+ async function vC() {
2918
+ let E = new z();
2919
+ E.setDisableOsnap(!0), E.setMessage("\u70B9\u53D6\u7F29\u653E\u533A\u57DF"), E.setDynamicInputType(xD.kDynTip);
2920
+ let D = await E.go();
2921
+ if (D == null)
2922
+ return;
2923
+ E.setUserDraw((B, F) => {
2924
+ F.drawRect(D.toVector3(), B.toVector3());
2925
+ });
2926
+ let C = await E.go();
2927
+ C != null && h.getCurrentDraw().zoomW(D.toVector3(), C.toVector3());
2928
+ }
2929
+ async function IC() {
2930
+ let E = i.GetCurrentDatabase().CurrentSpace().getBoundingBox();
2931
+ !E.ret || h.getCurrentDraw().zoomW(E.minPt.toVector3(), E.maxPt.toVector3());
2932
+ }
2933
+ async function jC() {
2934
+ const E = new zD();
2935
+ E.setMessage(`
2936
+ \u6307\u5B9A\u504F\u79FB\u8DDD\u79BB\u6216:`);
2937
+ let D = await E.go();
2938
+ if (D == null)
2939
+ return;
2940
+ let C = new AD();
2941
+ C.AddMcDbEntityTypes("LINE,CIRCLE,LWPOLYLINE,ARC");
2942
+ let B = await U.selectEnt(`
2943
+ \u9009\u62E9\u504F\u79FB\u5BF9\u8C61`, C, !1);
2944
+ if (B.length == 0)
2945
+ return;
2946
+ const F = new z();
2947
+ F.setMessage(`
2948
+ \u6307\u5B9A\u8981\u504F\u79FB\u90A3\u4E00\u4FA7\u4E0A\u7684\u70B9:`), F.setDisableOsnap(!0);
2949
+ let A = await F.go();
2950
+ if (A == null)
2951
+ return;
2952
+ let t = B[0].getMcDbCurve();
2953
+ if (!t)
2954
+ return;
2955
+ let e = t.offsetCurves(D, A);
2956
+ e.empty() || e.forEach((r) => {
2957
+ i.GetCurrentMxCAD().DrawEntity(r);
2958
+ });
2959
+ }
2758
2960
  h.on("init", () => {
2759
- h.addCommand("Mx_Erase", $D), h.addCommand("Mx_Copy", fC), h.addCommand("Mx_Move", MC), h.addCommand("Mx_Rotate", PC), h.addCommand("Mx_Scale", TC);
2961
+ h.addCommand("Mx_Erase", XD), h.addCommand("Mx_Copy", RC), h.addCommand("Mx_Move", OC), h.addCommand("Mx_Rotate", SC), h.addCommand("Mx_Scale", LC), h.addCommand("Mx_WindowZoom", vC), h.addCommand("Mx_ZoomE", IC), h.addCommand("Mx_Offset", jC);
2760
2962
  });
2761
- const kC = async (E, D, C) => {
2963
+ const GC = async (E, D, C) => {
2762
2964
  const { locateFile: B } = C, F = B(E + ".js");
2763
- return await UD(F), await globalThis[D](C);
2965
+ return await ND(F), await globalThis[D](C);
2764
2966
  };
2765
- function RC(E) {
2967
+ function WC(E) {
2766
2968
  return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
2767
2969
  }
2768
- function SC(E, D) {
2970
+ function VC(E, D) {
2769
2971
  const C = () => requestAnimationFrame(D);
2770
- let B = RC(C);
2972
+ let B = WC(C);
2771
2973
  if (B) {
2772
2974
  B.observe(E);
2773
2975
  return;
@@ -2777,7 +2979,7 @@ function SC(E, D) {
2777
2979
  return;
2778
2980
  }
2779
2981
  }
2780
- function LC(E, D) {
2982
+ function UC(E, D) {
2781
2983
  let C = null;
2782
2984
  return function(...B) {
2783
2985
  C || (C = setTimeout(() => {
@@ -2785,52 +2987,52 @@ function LC(E, D) {
2785
2987
  }, D));
2786
2988
  };
2787
2989
  }
2788
- class N {
2990
+ class q {
2789
2991
  static onloadWasmMxDraw3dModel;
2790
2992
  canvas;
2791
2993
  constructor(D) {
2792
2994
  const C = () => {
2793
- const a = this.canvas.parentElement?.clientWidth || window.innerWidth, l = this.canvas.parentElement?.clientHeight || window.innerHeight;
2794
- let c = Math.min(a, window.screen.availWidth), n = Math.min(l, window.screen.availHeight);
2995
+ const u = this.canvas.parentElement?.clientWidth || window.innerWidth, l = this.canvas.parentElement?.clientHeight || window.innerHeight;
2996
+ let c = Math.min(u, window.screen.availWidth), n = Math.min(l, window.screen.availHeight);
2795
2997
  c = Math.max(A, c), n = Math.max(t, n), this.canvas.style.width = c + 1 + "px", this.canvas.style.height = n + "px";
2796
2998
  const m = window.devicePixelRatio || 1;
2797
2999
  this.canvas.width = c * m, this.canvas.height = n * m;
2798
- }, B = LC(C, 50), {
3000
+ }, B = UC(C, 50), {
2799
3001
  canvas: F,
2800
3002
  minWidth: A = 300,
2801
3003
  minHeight: t = 300,
2802
3004
  updateCanvasSize: e = B,
2803
- ...i
3005
+ ...r
2804
3006
  } = D;
2805
3007
  let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
2806
- o == null && (o = s.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = s, this.ctx = o, i.canvas = this.canvas;
2807
- for (let a in i)
2808
- this[a] = i[a];
3008
+ o == null && (o = s.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = s, this.ctx = o, r.canvas = this.canvas;
3009
+ for (let u in r)
3010
+ this[u] = r[u];
2809
3011
  if (this.canvas instanceof HTMLCanvasElement) {
2810
- const a = this.canvas.parentElement || document.body;
2811
- SC(a, e);
3012
+ const u = this.canvas.parentElement || document.body;
3013
+ VC(u, e);
2812
3014
  } else
2813
3015
  console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
2814
- window.onresize = C, C(), kC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2815
- N.onloadWasmMxDraw3dModel && N.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (a) => {
3016
+ window.onresize = C, C(), GC("mxdraw3d_min", "mxdraw3d", this).then(() => {
3017
+ q.onloadWasmMxDraw3dModel && q.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (u) => {
2816
3018
  const l = new FileReader();
2817
3019
  l.onload = () => {
2818
3020
  if (!!l.result && l.result instanceof ArrayBuffer) {
2819
3021
  var c = new Uint8Array(l.result);
2820
3022
  const n = this._malloc(c.length);
2821
- this.HEAPU8.set(c, n), this.openFromMemory(a.name, n, c.length, !0), this.displayGround(!0), this.canvas.focus();
3023
+ this.HEAPU8.set(c, n), this.openFromMemory(u.name, n, c.length, !0), this.displayGround(!0), this.canvas.focus();
2822
3024
  }
2823
- }, l.readAsArrayBuffer(a);
3025
+ }, l.readAsArrayBuffer(u);
2824
3026
  };
2825
3027
  });
2826
3028
  }
2827
3029
  }
2828
- function OC(E, D) {
3030
+ function zC(E, D) {
2829
3031
  return new Promise(async (C, B) => {
2830
3032
  try {
2831
- E.locateFile || (E.locateFile = uC);
2832
- const F = new N(E);
2833
- N.onloadWasmMxDraw3dModel = () => {
3033
+ E.locateFile || (E.locateFile = pC);
3034
+ const F = new q(E);
3035
+ q.onloadWasmMxDraw3dModel = () => {
2834
3036
  C(F), D && D(F);
2835
3037
  };
2836
3038
  } catch (F) {
@@ -2838,139 +3040,145 @@ function OC(E, D) {
2838
3040
  }
2839
3041
  });
2840
3042
  }
2841
- const IC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3043
+ const HC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2842
3044
  __proto__: null,
2843
- b64Encode: fD,
2844
- b64Decode: MD,
2845
- saveAsFileDialog: PD,
2846
- downloadFile: TD,
2847
- downloadFileFromUrl: kD,
3045
+ b64Encode: TD,
3046
+ b64Decode: kD,
3047
+ saveAsFileDialog: RD,
3048
+ downloadFile: OD,
3049
+ downloadFileFromUrl: SD,
2848
3050
  MxTools: J,
2849
- McGePoint3d: u,
3051
+ McGePoint3d: a,
2850
3052
  McGeVector3d: y,
2851
3053
  McGeMatrix3d: I,
2852
- McGeLongArray: tC,
2853
- McGeStringArray: RD,
2854
- McGePoint3dArray: eC,
2855
- getFilterImp: K,
2856
- McDrawResbuf: $,
2857
- MxCADUtilityClass: GD,
2858
- MxCADUtility: z,
2859
- MxCADSelectionSet: q,
2860
- MxCADUiPrPoint: Y,
2861
- McRxObject: V,
3054
+ McGeLongArray: sC,
3055
+ McGeStringArray: LD,
3056
+ McGePoint3dArray: nC,
3057
+ getFilterImp: N,
3058
+ MxCADResbuf: AD,
3059
+ MxCADUtilityClass: UD,
3060
+ MxCADUtility: U,
3061
+ MxCADSelectionSet: Z,
3062
+ MxCADUiPrPoint: z,
3063
+ MxCADUiPrDist: zD,
3064
+ McRxObject: K,
2862
3065
  McObjectIdType: k,
2863
3066
  McObjectId: R,
2864
3067
  McDbObject: j,
3068
+ McDbObjectArray: nD,
2865
3069
  get McDb() {
2866
- return sD;
3070
+ return oD;
2867
3071
  },
2868
- McCmColor: U,
2869
- McDbLayerTableRecord: sC,
2870
- McDbLayerTable: SD,
2871
- McDbLinetypeTable: LD,
2872
- McDbTextStyleTable: OD,
2873
- McDbDatabase: lD,
2874
- McDbBlockTableRecordIterator: vD,
2875
- McDbBlockTableRecord: FD,
2876
- McDbBlockTableIterator: ID,
2877
- McDbBlockTable: jD,
2878
- McDbEntity: W,
2879
- McDbCurve: _,
2880
- McDbLine: DD,
2881
- McDbText: nD,
2882
- McDbMText: CD,
2883
- McDbCircle: G,
2884
- McDbPolyline: BD,
2885
- McDbBlockReference: oD,
2886
- McDbDimension: cD,
2887
- McDbAlignedDimension: aD,
2888
- McDbRotatedDimension: uD,
2889
- McDbArc: ED,
2890
- McDbEllipse: mD,
2891
- McObject: H,
2892
- McAppType: WD,
2893
- MxCppType: VD,
3072
+ McCmColor: H,
3073
+ McDbLayerTableRecord: uC,
3074
+ McDbLayerTable: vD,
3075
+ McDbLinetypeTable: ID,
3076
+ McDbTextStyleTable: jD,
3077
+ McDbDatabase: mD,
3078
+ McDbBlockTableRecordIterator: GD,
3079
+ McDbBlockTableRecord: ED,
3080
+ McDbBlockTableIterator: WD,
3081
+ McDbBlockTable: VD,
3082
+ McDbEntity: G,
3083
+ McDbCurve: V,
3084
+ McDbLine: X,
3085
+ McDbText: aD,
3086
+ McDbMText: DD,
3087
+ McDbCircle: W,
3088
+ McDbPolyline: CD,
3089
+ McDbBlockReference: uD,
3090
+ McDbDimension: pD,
3091
+ McDbAlignedDimension: lD,
3092
+ McDbRotatedDimension: cD,
3093
+ McDbArc: BD,
3094
+ McDbEllipse: FD,
3095
+ McDbPoint: dD,
3096
+ McObject: _,
3097
+ McAppType: KD,
3098
+ MxCppType: HD,
2894
3099
  get MxCpp() {
2895
- return r;
3100
+ return i;
2896
3101
  },
2897
- loadMxCADassembly: zD,
2898
- createMxCad: pC,
2899
- drawText: dC,
2900
- drawCircle: KD,
2901
- drawLine: HD,
2902
- drawMText: yC,
2903
- drawPolyLine: ND,
2904
- drawPolygon: _D,
2905
- drawArc: qD,
2906
- drawEllipticalArc: ZD,
2907
- mxErase: $D,
2908
- MxDraw3d: N,
2909
- loadMxCADassembly3d: OC
3102
+ loadMxCADassembly: _D,
3103
+ createMxCad: wC,
3104
+ drawText: gC,
3105
+ drawCircle: qD,
3106
+ drawLine: ZD,
3107
+ drawMText: xC,
3108
+ drawPolyLine: $D,
3109
+ drawPolygon: JD,
3110
+ drawArc: YD,
3111
+ drawEllipticalArc: QD,
3112
+ Mx_Erase: XD,
3113
+ MxDraw3d: q,
3114
+ loadMxCADassembly3d: zC
2910
3115
  }, Symbol.toStringTag, { value: "Module" }));
2911
3116
  export {
2912
- WD as McAppType,
2913
- U as McCmColor,
2914
- sD as McDb,
2915
- aD as McDbAlignedDimension,
2916
- ED as McDbArc,
2917
- oD as McDbBlockReference,
2918
- jD as McDbBlockTable,
2919
- ID as McDbBlockTableIterator,
2920
- FD as McDbBlockTableRecord,
2921
- vD as McDbBlockTableRecordIterator,
2922
- G as McDbCircle,
2923
- _ as McDbCurve,
2924
- lD as McDbDatabase,
2925
- cD as McDbDimension,
2926
- mD as McDbEllipse,
2927
- W as McDbEntity,
2928
- SD as McDbLayerTable,
2929
- sC as McDbLayerTableRecord,
2930
- DD as McDbLine,
2931
- LD as McDbLinetypeTable,
2932
- CD as McDbMText,
3117
+ KD as McAppType,
3118
+ H as McCmColor,
3119
+ oD as McDb,
3120
+ lD as McDbAlignedDimension,
3121
+ BD as McDbArc,
3122
+ uD as McDbBlockReference,
3123
+ VD as McDbBlockTable,
3124
+ WD as McDbBlockTableIterator,
3125
+ ED as McDbBlockTableRecord,
3126
+ GD as McDbBlockTableRecordIterator,
3127
+ W as McDbCircle,
3128
+ V as McDbCurve,
3129
+ mD as McDbDatabase,
3130
+ pD as McDbDimension,
3131
+ FD as McDbEllipse,
3132
+ G as McDbEntity,
3133
+ vD as McDbLayerTable,
3134
+ uC as McDbLayerTableRecord,
3135
+ X as McDbLine,
3136
+ ID as McDbLinetypeTable,
3137
+ DD as McDbMText,
2933
3138
  j as McDbObject,
2934
- BD as McDbPolyline,
2935
- uD as McDbRotatedDimension,
2936
- nD as McDbText,
2937
- OD as McDbTextStyleTable,
2938
- $ as McDrawResbuf,
2939
- tC as McGeLongArray,
3139
+ nD as McDbObjectArray,
3140
+ dD as McDbPoint,
3141
+ CD as McDbPolyline,
3142
+ cD as McDbRotatedDimension,
3143
+ aD as McDbText,
3144
+ jD as McDbTextStyleTable,
3145
+ sC as McGeLongArray,
2940
3146
  I as McGeMatrix3d,
2941
- u as McGePoint3d,
2942
- eC as McGePoint3dArray,
2943
- RD as McGeStringArray,
3147
+ a as McGePoint3d,
3148
+ nC as McGePoint3dArray,
3149
+ LD as McGeStringArray,
2944
3150
  y as McGeVector3d,
2945
- H as McObject,
3151
+ _ as McObject,
2946
3152
  R as McObjectId,
2947
3153
  k as McObjectIdType,
2948
- V as McRxObject,
2949
- q as MxCADSelectionSet,
2950
- Y as MxCADUiPrPoint,
2951
- z as MxCADUtility,
2952
- GD as MxCADUtilityClass,
2953
- r as MxCpp,
2954
- VD as MxCppType,
2955
- N as MxDraw3d,
3154
+ K as McRxObject,
3155
+ AD as MxCADResbuf,
3156
+ Z as MxCADSelectionSet,
3157
+ zD as MxCADUiPrDist,
3158
+ z as MxCADUiPrPoint,
3159
+ U as MxCADUtility,
3160
+ UD as MxCADUtilityClass,
3161
+ i as MxCpp,
3162
+ HD as MxCppType,
3163
+ q as MxDraw3d,
2956
3164
  J as MxTools,
2957
- MD as b64Decode,
2958
- fD as b64Encode,
2959
- pC as createMxCad,
2960
- IC as default,
2961
- TD as downloadFile,
2962
- kD as downloadFileFromUrl,
2963
- qD as drawArc,
2964
- KD as drawCircle,
2965
- ZD as drawEllipticalArc,
2966
- HD as drawLine,
2967
- yC as drawMText,
2968
- ND as drawPolyLine,
2969
- _D as drawPolygon,
2970
- dC as drawText,
2971
- K as getFilterImp,
2972
- zD as loadMxCADassembly,
2973
- OC as loadMxCADassembly3d,
2974
- $D as mxErase,
2975
- PD as saveAsFileDialog
3165
+ XD as Mx_Erase,
3166
+ kD as b64Decode,
3167
+ TD as b64Encode,
3168
+ wC as createMxCad,
3169
+ HC as default,
3170
+ OD as downloadFile,
3171
+ SD as downloadFileFromUrl,
3172
+ YD as drawArc,
3173
+ qD as drawCircle,
3174
+ QD as drawEllipticalArc,
3175
+ ZD as drawLine,
3176
+ xC as drawMText,
3177
+ $D as drawPolyLine,
3178
+ JD as drawPolygon,
3179
+ gC as drawText,
3180
+ N as getFilterImp,
3181
+ _D as loadMxCADassembly,
3182
+ zC as loadMxCADassembly3d,
3183
+ RD as saveAsFileDialog
2976
3184
  };