mxcad 1.0.74 → 1.0.75

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 T, MxCursorType as dD, MrxDbgUtils as hD, DynamicInputType as ZD, DetailedResult as FD, store as wD, loadCoreCode as YD, MxPaintBrush as L, MrxDbgUiPrBaseReturn as x, MxDbCircleShape as yD, MxDbLine as Z, MxDbPolyline as QD, MxDbCircleArc as J, Mx3PointArc as XD, MxDbEllipseShape as DC, McEdGetPointWorldDrawObject as CC, MxDbEllipse as BC } from "mxdraw";
2
- function gD(E) {
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) {
3
3
  return btoa(unescape(encodeURIComponent(E)));
4
4
  }
5
- function bD(E) {
5
+ function MD(E) {
6
6
  return decodeURIComponent(escape(atob(E)));
7
7
  }
8
- async function xD({
8
+ async function PD({
9
9
  blob: E,
10
10
  filename: D = "",
11
11
  types: C = [
@@ -46,24 +46,24 @@ async function xD({
46
46
  console.error(B.name, B.message);
47
47
  }
48
48
  }
49
- function fD(E, D) {
49
+ function TD(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 MD(E, D) {
53
+ function kD(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
- const _ = {
60
- b64Encode: gD,
61
- b64Decode: bD,
62
- saveAsFileDialog: xD,
63
- downloadFile: fD,
64
- downloadFileFromUrl: MD
59
+ const J = {
60
+ b64Encode: fD,
61
+ b64Decode: MD,
62
+ saveAsFileDialog: PD,
63
+ downloadFile: TD,
64
+ downloadFileFromUrl: kD
65
65
  };
66
- class EC {
66
+ class AC {
67
67
  z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
68
68
  encodeToGb2312(D) {
69
69
  for (var C = "", B = 0; B < D.length; B++) {
@@ -71,8 +71,8 @@ class EC {
71
71
  if (F == " ")
72
72
  C += "+";
73
73
  else if (A >= 19968 && A <= 40869) {
74
- let e = A - 19968;
75
- C += "%" + this.z.substr(e * 4, 2) + "%" + this.z.substr(e * 4 + 2, 2);
74
+ let t = A - 19968;
75
+ C += "%" + this.z.substr(t * 4, 2) + "%" + this.z.substr(t * 4 + 2, 2);
76
76
  } else
77
77
  C += "%" + D.charCodeAt(B).toString(16);
78
78
  }
@@ -90,11 +90,11 @@ class EC {
90
90
  var A = D.charAt(B);
91
91
  if (isNaN(parseInt(A)))
92
92
  try {
93
- var e = D.substr(B, 2) + D.substr(B + 3, 2);
93
+ var t = D.substr(B, 2) + D.substr(B + 3, 2);
94
94
  B = B + 4;
95
- for (var t = -1; (t = this.z.indexOf(e, t + 1)) != -1; )
96
- if (t % 4 == 0) {
97
- C += String.fromCharCode(t / 4 + 19968);
95
+ for (var e = -1; (e = this.z.indexOf(t, e + 1)) != -1; )
96
+ if (e % 4 == 0) {
97
+ C += String.fromCharCode(e / 4 + 19968);
98
98
  break;
99
99
  }
100
100
  } catch {
@@ -112,12 +112,15 @@ class EC {
112
112
  return C;
113
113
  }
114
114
  }
115
- let g = new EC();
116
- class a {
115
+ let P = new AC();
116
+ class u {
117
117
  static kOrigin;
118
118
  imp;
119
119
  constructor(D, C, B) {
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);
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);
121
+ }
122
+ toVector3() {
123
+ return new THREE.Vector3(this.imp.x, this.imp.y, this.imp.z);
121
124
  }
122
125
  copy(D) {
123
126
  return this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z, this;
@@ -132,7 +135,7 @@ class a {
132
135
  return this.imp.subvec(D.imp), this;
133
136
  }
134
137
  sub(D) {
135
- return new w(this.imp.sub(D.imp));
138
+ return new y(this.imp.sub(D.imp));
136
139
  }
137
140
  distanceTo(D) {
138
141
  return this.imp.distanceTo(D.imp);
@@ -141,7 +144,7 @@ class a {
141
144
  return this.imp.isEqualTo(D.imp);
142
145
  }
143
146
  clone() {
144
- return new a(this.imp);
147
+ return new u(this.imp);
145
148
  }
146
149
  get x() {
147
150
  return this.imp.x;
@@ -162,19 +165,20 @@ class a {
162
165
  this.imp.z = D;
163
166
  }
164
167
  }
165
- class w {
168
+ class y {
166
169
  static kXAxis;
167
170
  static kYAxis;
168
171
  static kZAxis;
172
+ static kNegateZAxis;
169
173
  imp;
170
174
  constructor(D, C, B) {
171
- 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);
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);
172
176
  }
173
177
  copy(D) {
174
178
  return this.imp.x = D.imp.x, this.imp.y = D.imp.y, this.imp.z = D.imp.z, this;
175
179
  }
176
180
  clone() {
177
- return new w(this.imp);
181
+ return new y(this.imp);
178
182
  }
179
183
  rotateBy(D, C) {
180
184
  return this.imp.rotateBy(D, C.imp), this;
@@ -207,7 +211,7 @@ class w {
207
211
  return this.imp.dotProduct(D.imp);
208
212
  }
209
213
  crossProduct(D) {
210
- let C = new w();
214
+ let C = new y();
211
215
  return C.imp = this.imp.crossProduct(D.imp), C;
212
216
  }
213
217
  isEqualTo(D) {
@@ -232,17 +236,17 @@ class w {
232
236
  this.imp.z = D;
233
237
  }
234
238
  }
235
- class V {
239
+ class I {
236
240
  static kIdentity;
237
241
  imp;
238
242
  constructor(D) {
239
- this.imp = i.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
243
+ this.imp = new r.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
240
244
  }
241
245
  copy(D) {
242
246
  return this.imp.copy(D.imp), this;
243
247
  }
244
248
  clone() {
245
- return new V(this.imp);
249
+ return new I(this.imp);
246
250
  }
247
251
  setToIdentity() {
248
252
  return this.imp.setToIdentity(), this;
@@ -290,10 +294,10 @@ class V {
290
294
  return this.imp.getData(D, C);
291
295
  }
292
296
  }
293
- class FC {
297
+ class tC {
294
298
  imp;
295
299
  constructor(D) {
296
- this.imp = new i.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
300
+ this.imp = new r.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
297
301
  }
298
302
  copy(D) {
299
303
  return this.imp.copy(D.imp), this;
@@ -311,10 +315,10 @@ class FC {
311
315
  this.imp.setAt(D, C);
312
316
  }
313
317
  }
314
- class TD {
318
+ class RD {
315
319
  imp;
316
320
  constructor(D) {
317
- this.imp = new i.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
321
+ this.imp = new r.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
318
322
  }
319
323
  copy(D) {
320
324
  return this.imp.copy(D.imp), this;
@@ -326,21 +330,21 @@ class TD {
326
330
  return this.imp.length();
327
331
  }
328
332
  at(D, C = !0) {
329
- return C ? g.decodeFromGb2312(this.imp.at(D)) : this.imp.at(D);
333
+ return C ? P.decodeFromGb2312(this.imp.at(D)) : this.imp.at(D);
330
334
  }
331
335
  setAt(D, C, B = !0) {
332
- B ? this.imp.setAt(D, g.encodeToGb2312(C)) : this.imp.setAt(D, C);
336
+ B ? this.imp.setAt(D, P.encodeToGb2312(C)) : this.imp.setAt(D, C);
333
337
  }
334
338
  forEach(D, C = !0) {
335
339
  let B = this.imp.length();
336
340
  for (let F = 0; F < B; F++)
337
- D(C ? g.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
341
+ D(C ? P.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
338
342
  }
339
343
  }
340
- class AC {
344
+ class eC {
341
345
  imp;
342
346
  constructor(D) {
343
- this.imp = new i.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
347
+ this.imp = new r.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
344
348
  }
345
349
  copy(D) {
346
350
  return this.imp.copy(D.imp), this;
@@ -352,19 +356,19 @@ class AC {
352
356
  return this.imp.length();
353
357
  }
354
358
  at(D) {
355
- return new a(this.imp.at(D));
359
+ return new u(this.imp.at(D));
356
360
  }
357
361
  setAt(D, C) {
358
362
  this.imp.setAt(D, C.imp);
359
363
  }
360
364
  }
361
- const eC = new FinalizationRegistry((E) => {
362
- i.App.DestroyObject(E);
363
- }), tC = {};
364
- class G {
365
+ const iC = new FinalizationRegistry((E) => {
366
+ r.App.DestroyObject(E);
367
+ }), rC = {};
368
+ class V {
365
369
  imp = 0;
366
370
  constructor(D) {
367
- this.imp = D, this.imp && eC.register(this, D, tC);
371
+ this.imp = D, this.imp && iC.register(this, D, rC);
368
372
  }
369
373
  getImp() {
370
374
  return this.imp;
@@ -380,18 +384,18 @@ class G {
380
384
  }
381
385
  getJson() {
382
386
  let D = this.imp.getJson();
383
- return g.decodeFromGb2312(D);
387
+ return P.decodeFromGb2312(D);
384
388
  }
385
389
  setJson(D) {
386
- let C = g.encodeToGb2312(D);
390
+ let C = P.encodeToGb2312(D);
387
391
  return this.imp.setJson(C);
388
392
  }
389
393
  isKindOf(D) {
390
394
  return this.imp.isKindOf(D);
391
395
  }
392
396
  }
393
- var f = /* @__PURE__ */ ((E) => (E[E.kMxCAD = 0] = "kMxCAD", E[E.kMxDraw = 1] = "kMxDraw", E[E.kInvalid = 2] = "kInvalid", E))(f || {});
394
- class M {
397
+ var k = /* @__PURE__ */ ((E) => (E[E.kMxCAD = 0] = "kMxCAD", E[E.kMxDraw = 1] = "kMxDraw", E[E.kInvalid = 2] = "kInvalid", E))(k || {});
398
+ class R {
395
399
  id;
396
400
  type;
397
401
  constructor(D, C) {
@@ -401,24 +405,27 @@ class M {
401
405
  return this.type != 2 && this.id != 0;
402
406
  }
403
407
  erase() {
404
- this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && $.eraseEntity(this.id);
408
+ this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && z.eraseEntity(this.id);
405
409
  }
406
410
  getMcDbObject() {
407
- return this.type == 0 ? i.App.ObjectIdToObject(this.id) : null;
411
+ return this.type == 0 ? r.App.ObjectIdToObject(this.id) : null;
412
+ }
413
+ getMcDbEntity() {
414
+ return this.type == 0 && r.App.ObjectIdIsKindOf(this.id, "McDbEntity") ? r.App.ObjectIdToObject(this.id) : null;
408
415
  }
409
416
  clone() {
410
417
  if (this.type == 0) {
411
- let D = i.App.getImp().ObjectIdToMdObject(this.id);
418
+ let D = r.App.getImp().ObjectIdToMdObject(this.id);
412
419
  if (!D)
413
420
  return null;
414
421
  let C = D.Clone();
415
- return i.App.DestroyObject(D), i.App.CreateCloneObject(C);
422
+ return r.App.DestroyObject(D), r.App.CreateCloneObject(C);
416
423
  }
417
424
  return null;
418
425
  }
419
426
  getObjectName() {
420
427
  if (this.type == 0)
421
- return i.App.getImp().ObjectIdToObjectName(this.id);
428
+ return r.App.getImp().ObjectIdToObjectName(this.id);
422
429
  if (this.type == 1) {
423
430
  let D = h.getCurrentDraw().getMxEntity(this.id);
424
431
  if (D)
@@ -430,7 +437,7 @@ class M {
430
437
  return this.type == 1 ? h.getCurrentDraw().getMxEntity(this.id) : null;
431
438
  }
432
439
  }
433
- class v extends G {
440
+ class j extends V {
434
441
  constructor(D) {
435
442
  super(D);
436
443
  }
@@ -442,19 +449,19 @@ class v extends G {
442
449
  }
443
450
  Clone() {
444
451
  let D = this.imp.Clone();
445
- return i.App.CreateCloneObject(D);
452
+ return r.App.CreateCloneObject(D);
446
453
  }
447
454
  GetHandle() {
448
455
  return this.imp.GetHandle();
449
456
  }
450
457
  GetDatabase() {
451
- return new oD(this.imp.GetDatabase());
458
+ return new lD(this.imp.GetDatabase());
452
459
  }
453
460
  GetOwnerID() {
454
461
  return this.imp.GetOwnerID();
455
462
  }
456
463
  }
457
- var tD;
464
+ var sD;
458
465
  ((E) => {
459
466
  ((D) => {
460
467
  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";
@@ -465,11 +472,11 @@ var tD;
465
472
  })(E.AttachmentPoint || (E.AttachmentPoint = {})), ((D) => {
466
473
  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";
467
474
  })(E.LineWeight || (E.LineWeight = {}));
468
- })(tD || (tD = {}));
469
- class I {
475
+ })(sD || (sD = {}));
476
+ class U {
470
477
  imp;
471
478
  constructor(D, C, B) {
472
- 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);
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);
473
480
  }
474
481
  getImp() {
475
482
  return this.imp;
@@ -478,7 +485,7 @@ class I {
478
485
  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;
479
486
  }
480
487
  clone() {
481
- return new I(this.imp);
488
+ return new U(this.imp);
482
489
  }
483
490
  setColorIndex(D) {
484
491
  this.imp.setColorIndex(D);
@@ -523,9 +530,9 @@ class I {
523
530
  this.imp.colorIndex = D;
524
531
  }
525
532
  }
526
- class iC extends v {
533
+ class sC extends j {
527
534
  constructor(D) {
528
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLayerTableRecord());
535
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbLayerTableRecord());
529
536
  }
530
537
  get name() {
531
538
  return this.imp.getName();
@@ -552,13 +559,13 @@ class iC extends v {
552
559
  this.imp.setIsLocked(D);
553
560
  }
554
561
  get color() {
555
- return new I(this.imp.color());
562
+ return new U(this.imp.color());
556
563
  }
557
564
  set color(D) {
558
565
  this.imp.setColor(D.getImp());
559
566
  }
560
567
  get linetypeObjectId() {
561
- return new M(this.imp.linetypeObjectId(), f.kMxCAD);
568
+ return new R(this.imp.linetypeObjectId(), k.kMxCAD);
562
569
  }
563
570
  set linetypeObjectId(D) {
564
571
  this.imp.setLinetypeObjectId(D.id);
@@ -570,39 +577,39 @@ class iC extends v {
570
577
  this.imp.setLineWeight(D);
571
578
  }
572
579
  }
573
- class kD extends v {
580
+ class SD extends j {
574
581
  constructor(D) {
575
582
  super(D);
576
583
  }
577
584
  }
578
- class PD extends v {
585
+ class LD extends j {
579
586
  constructor(D) {
580
587
  super(D);
581
588
  }
582
589
  }
583
- class SD extends v {
590
+ class OD extends j {
584
591
  constructor(D) {
585
592
  super(D);
586
593
  }
587
594
  }
588
- class oD extends G {
595
+ class lD extends V {
589
596
  constructor(D) {
590
597
  super(D);
591
598
  }
592
599
  GetLayerTable() {
593
- return new kD(this.imp.GetLayerTable());
600
+ return new SD(this.imp.GetLayerTable());
594
601
  }
595
602
  GetLinetypeTable() {
596
- return new PD(this.imp.GetLinetypeTable());
603
+ return new LD(this.imp.GetLinetypeTable());
597
604
  }
598
605
  GetTextStyleTable() {
599
- return new SD(this.imp.GetTextStyleTable());
606
+ return new OD(this.imp.GetTextStyleTable());
600
607
  }
601
608
  GetBlockTable() {
602
- return new vD(this.imp.GetBlockTable());
609
+ return new jD(this.imp.GetBlockTable());
603
610
  }
604
611
  CurrentSpace() {
605
- return new CD(this.imp.CurrentSpace());
612
+ return new FD(this.imp.CurrentSpace());
606
613
  }
607
614
  GetCurrentlyLineTypeScale() {
608
615
  return this.imp.GetCurrentlyLineTypeScale();
@@ -612,22 +619,22 @@ class oD extends G {
612
619
  }
613
620
  GetCurrentlyLineTypeName() {
614
621
  let D = this.imp.GetCurrentlyLineTypeName();
615
- return g.decodeFromGb2312(D);
622
+ return P.decodeFromGb2312(D);
616
623
  }
617
624
  SetCurrentlyLineTypeName(D) {
618
- let C = g.encodeToGb2312(D);
625
+ let C = P.encodeToGb2312(D);
619
626
  this.imp.SetCurrentlyLineTypeName(C);
620
627
  }
621
628
  GetCurrentlyLayerName() {
622
629
  let D = this.imp.GetCurrentlyLayerName();
623
- return g.decodeFromGb2312(D);
630
+ return P.decodeFromGb2312(D);
624
631
  }
625
632
  SetCurrentlyLayerName(D) {
626
- let C = g.encodeToGb2312(D);
633
+ let C = P.encodeToGb2312(D);
627
634
  this.imp.SetCurrentlyLayerName(C);
628
635
  }
629
636
  GetCurrentlyTrueColor() {
630
- return new I(this.imp.GetCurrentlyTrueColor());
637
+ return new U(this.imp.GetCurrentlyTrueColor());
631
638
  }
632
639
  GetCurrentlyDrawColor() {
633
640
  let D = this.imp.GetCurrentlyDrawColor(), C = new THREE.Color();
@@ -644,14 +651,14 @@ class oD extends G {
644
651
  }
645
652
  GetCurrentlyTextStyleName() {
646
653
  let D = this.imp.GetCurrentlyTextStyleName();
647
- return g.decodeFromGb2312(D);
654
+ return P.decodeFromGb2312(D);
648
655
  }
649
656
  SetCurrentlyTextStyle(D) {
650
- let C = g.encodeToGb2312(D);
657
+ let C = P.encodeToGb2312(D);
651
658
  this.imp.SetCurrentlyTextStyle(C);
652
659
  }
653
660
  }
654
- class RD extends G {
661
+ class vD extends V {
655
662
  constructor(D) {
656
663
  super(D);
657
664
  }
@@ -662,34 +669,34 @@ class RD extends G {
662
669
  return this.imp.done();
663
670
  }
664
671
  getEntityId() {
665
- return new M(this.imp.getEntityId(), f.kMxCAD);
672
+ return new R(this.imp.getEntityId(), k.kMxCAD);
666
673
  }
667
674
  step(D = !0, C = !0) {
668
675
  return this.imp.step(D, C);
669
676
  }
670
677
  }
671
- class CD extends v {
678
+ class FD extends j {
672
679
  constructor(D) {
673
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTableRecord());
680
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockTableRecord());
674
681
  }
675
682
  appendAcDbEntity(D) {
676
- return new M(
683
+ return new R(
677
684
  this.imp.appendAcDbEntity(D.getImp()),
678
- f.kMxCAD
685
+ k.kMxCAD
679
686
  );
680
687
  }
681
688
  newIterator(D = !0, C = !0) {
682
689
  let B = this.imp.newIterator(D, C);
683
- return new RD(B);
690
+ return new vD(B);
684
691
  }
685
692
  get origin() {
686
- return new a(this.imp.origin());
693
+ return new u(this.imp.origin());
687
694
  }
688
695
  set origin(D) {
689
696
  this.imp.setOrigin(D.imp);
690
697
  }
691
698
  }
692
- class LD extends G {
699
+ class ID extends V {
693
700
  constructor(D) {
694
701
  super(D);
695
702
  }
@@ -701,41 +708,41 @@ class LD extends G {
701
708
  }
702
709
  getRecord() {
703
710
  let D = this.imp.getRecord();
704
- return new CD(D);
711
+ return new FD(D);
705
712
  }
706
713
  step(D = !0, C = !0) {
707
714
  this.imp.start(D, C);
708
715
  }
709
716
  }
710
- class vD extends v {
717
+ class jD extends j {
711
718
  constructor(D) {
712
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTable());
719
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockTable());
713
720
  }
714
721
  getAt(D) {
715
722
  let C = this.getAt(D);
716
- return C && new CD(C);
723
+ return C && new FD(C);
717
724
  }
718
725
  has(D) {
719
726
  return this.imp.has(D);
720
727
  }
721
728
  newIterator(D = !0, C = !0) {
722
729
  let B = this.imp.newIterator(D, C);
723
- return new LD(B);
730
+ return new ID(B);
724
731
  }
725
732
  add(D) {
726
733
  return this.imp.add(D.getImp());
727
734
  }
728
735
  }
729
- class j extends v {
736
+ class W extends j {
730
737
  constructor(D) {
731
738
  super(D);
732
739
  }
733
740
  explode() {
734
741
  let D = this.imp.explode();
735
- return new q(D);
742
+ return new $(D);
736
743
  }
737
744
  get trueColor() {
738
- return new I(this.imp.TrueColor());
745
+ return new U(this.imp.TrueColor());
739
746
  }
740
747
  set trueColor(D) {
741
748
  this.imp.SetTrueColor(D.getImp());
@@ -798,130 +805,130 @@ class j extends v {
798
805
  let D = this.imp.GetBoundingBox();
799
806
  if (D) {
800
807
  let C = {
801
- minPt: new a(D.AtPoint(0).val),
802
- maxPt: new a(D.AtPoint(1).val),
808
+ minPt: new u(D.AtPoint(0)),
809
+ maxPt: new u(D.AtPoint(1)),
803
810
  ret: 0
804
811
  };
805
- return i.App.DestroyObject(D), C;
812
+ return r.App.DestroyObject(D), C;
806
813
  } else
807
- return { minPt: new a(), maxPt: new a(), ret: 1 };
814
+ return { minPt: new u(), maxPt: new u(), ret: 1 };
808
815
  }
809
816
  }
810
- class N extends j {
817
+ class _ extends W {
811
818
  constructor(D) {
812
819
  super(D);
813
820
  }
814
821
  getStartParam() {
815
- return { val: this.imp.getStartParam(), ret: i.getCallResult() };
822
+ return { val: this.imp.getStartParam(), ret: r.getCallResult() };
816
823
  }
817
824
  getEndParam() {
818
- return { val: this.imp.getEndParam(), ret: i.getCallResult() };
825
+ return { val: this.imp.getEndParam(), ret: r.getCallResult() };
819
826
  }
820
827
  getDistAtParam(D) {
821
- return { val: this.imp.getDistAtParam(D), ret: i.getCallResult() };
828
+ return { val: this.imp.getDistAtParam(D), ret: r.getCallResult() };
822
829
  }
823
830
  getParamAtDist(D) {
824
- return { val: this.imp.getParamAtDist(D), ret: i.getCallResult() };
831
+ return { val: this.imp.getParamAtDist(D), ret: r.getCallResult() };
825
832
  }
826
833
  getDistAtPoint(D) {
827
- return { val: this.imp.getDistAtPoint(D.imp), ret: i.getCallResult() };
834
+ return { val: this.imp.getDistAtPoint(D.imp), ret: r.getCallResult() };
828
835
  }
829
836
  getPointAtDist(D) {
830
837
  return {
831
- val: new a(this.imp.getPointAtDist(D)),
832
- ret: i.getCallResult()
838
+ val: new u(this.imp.getPointAtDist(D)),
839
+ ret: r.getCallResult()
833
840
  };
834
841
  }
835
842
  getStartPoint() {
836
843
  return {
837
- val: new a(this.imp.getStartPoint()),
838
- ret: i.getCallResult()
844
+ val: new u(this.imp.getStartPoint()),
845
+ ret: r.getCallResult()
839
846
  };
840
847
  }
841
848
  getEndPoint() {
842
849
  return {
843
- val: new a(this.imp.getStartPoint()),
844
- ret: i.getCallResult()
850
+ val: new u(this.imp.getStartPoint()),
851
+ ret: r.getCallResult()
845
852
  };
846
853
  }
847
854
  getPointAtParam(D) {
848
855
  return {
849
- val: new a(this.imp.getPointAtParam(D)),
850
- ret: i.getCallResult()
856
+ val: new u(this.imp.getPointAtParam(D)),
857
+ ret: r.getCallResult()
851
858
  };
852
859
  }
853
860
  getParamAtPoint(D) {
854
861
  return {
855
862
  val: this.imp.getParamAtPoint(D.imp),
856
- ret: i.getCallResult()
863
+ ret: r.getCallResult()
857
864
  };
858
865
  }
859
866
  getFirstDeriv(D) {
860
867
  return {
861
- val: new w(this.imp.getFirstDeriv(D)),
862
- ret: i.getCallResult()
868
+ val: new y(this.imp.getFirstDeriv(D)),
869
+ ret: r.getCallResult()
863
870
  };
864
871
  }
865
872
  getFirstDerivEx(D) {
866
873
  return {
867
- val: new w(this.imp.getFirstDerivEx(D.imp)),
868
- ret: i.getCallResult()
874
+ val: new y(this.imp.getFirstDerivEx(D.imp)),
875
+ ret: r.getCallResult()
869
876
  };
870
877
  }
871
878
  getClosestPointTo(D, C) {
872
879
  return {
873
- val: new a(this.imp.getClosestPointTo(D.imp, C)),
874
- ret: i.getCallResult()
880
+ val: new u(this.imp.getClosestPointTo(D.imp, C)),
881
+ ret: r.getCallResult()
875
882
  };
876
883
  }
877
884
  offsetCurves(D, C) {
878
885
  let B = this.imp.offsetCurves(D, C.imp);
879
- return new q(B);
886
+ return new $(B);
880
887
  }
881
888
  splitCurves(D) {
882
889
  let C = this.imp.splitCurves(D);
883
- return new q(C);
890
+ return new $(C);
884
891
  }
885
892
  getArea() {
886
- return { val: this.imp.getArea(), ret: i.getCallResult() };
893
+ return { val: this.imp.getArea(), ret: r.getCallResult() };
887
894
  }
888
895
  getSamplePoints(D) {
889
896
  let C = this.imp.getSamplePoints(D);
890
- return new q(C);
897
+ return new $(C);
891
898
  }
892
899
  getLength() {
893
- return { val: this.imp.getLength(), ret: i.getCallResult() };
900
+ return { val: this.imp.getLength(), ret: r.getCallResult() };
894
901
  }
895
902
  }
896
- class Y extends N {
897
- constructor(D, C, B, F, A, e) {
898
- 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, e));
903
+ class DD extends _ {
904
+ 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));
899
906
  }
900
907
  get startPoint() {
901
- return new a(this.imp.startPoint());
908
+ return new u(this.imp.startPoint());
902
909
  }
903
910
  set startPoint(D) {
904
911
  this.imp.setStartPoint(D.imp);
905
912
  }
906
913
  get endPoint() {
907
- return new a(this.imp.endPoint());
914
+ return new u(this.imp.endPoint());
908
915
  }
909
916
  set endPoint(D) {
910
917
  this.imp.setEndPoint(D.imp);
911
918
  }
912
919
  }
913
- class iD extends j {
920
+ class nD extends W {
914
921
  constructor(D) {
915
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbText());
922
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbText());
916
923
  }
917
924
  get position() {
918
- return new a(this.imp.position());
925
+ return new u(this.imp.position());
919
926
  }
920
927
  set position(D) {
921
928
  this.imp.setPosition(D.imp);
922
929
  }
923
930
  get alignmentPoint() {
924
- return new a(this.imp.position());
931
+ return new u(this.imp.position());
925
932
  }
926
933
  set alignmentPoint(D) {
927
934
  this.imp.setAlignmentPoint(D.imp);
@@ -951,10 +958,10 @@ class iD extends j {
951
958
  this.imp.setWidthFactor(D);
952
959
  }
953
960
  get textString() {
954
- return g.decodeFromGb2312(this.imp.textString());
961
+ return P.decodeFromGb2312(this.imp.textString());
955
962
  }
956
963
  set textString(D) {
957
- this.imp.setTextString(g.encodeToGb2312(D));
964
+ this.imp.setTextString(P.encodeToGb2312(D));
958
965
  }
959
966
  get horizontalMode() {
960
967
  return this.imp.horizontalMode();
@@ -969,12 +976,12 @@ class iD extends j {
969
976
  this.imp.setVerticalMode(D);
970
977
  }
971
978
  }
972
- class Q extends j {
979
+ class CD extends W {
973
980
  constructor(D) {
974
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbMText());
981
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbMText());
975
982
  }
976
983
  get location() {
977
- return new a(this.imp.location());
984
+ return new u(this.imp.location());
978
985
  }
979
986
  set location(D) {
980
987
  this.imp.setLocation(D.imp);
@@ -1004,21 +1011,21 @@ class Q extends j {
1004
1011
  this.imp.setAttachment(D);
1005
1012
  }
1006
1013
  get contents() {
1007
- return g.decodeFromGb2312(this.imp.contents());
1014
+ return P.decodeFromGb2312(this.imp.contents());
1008
1015
  }
1009
1016
  set contents(D) {
1010
- this.imp.setContents(g.encodeToGb2312(D));
1017
+ this.imp.setContents(P.encodeToGb2312(D));
1011
1018
  }
1012
1019
  }
1013
- class O extends N {
1020
+ class G extends _ {
1014
1021
  constructor(D, C, B, F) {
1015
- 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)));
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)));
1016
1023
  }
1017
1024
  setCenter(D, C, B) {
1018
- this.imp.setCenter(new a(D, C, B).imp);
1025
+ this.imp.setCenter(new u(D, C, B).imp);
1019
1026
  }
1020
1027
  get center() {
1021
- return new a(this.imp.center());
1028
+ return new u(this.imp.center());
1022
1029
  }
1023
1030
  set center(D) {
1024
1031
  this.imp.setCenter(D.imp);
@@ -1030,9 +1037,9 @@ class O extends N {
1030
1037
  this.imp.setRadius(D);
1031
1038
  }
1032
1039
  }
1033
- class X extends N {
1040
+ class BD extends _ {
1034
1041
  constructor(D) {
1035
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbPolyline());
1042
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbPolyline());
1036
1043
  }
1037
1044
  get isClosed() {
1038
1045
  return this.imp.isClosed();
@@ -1048,8 +1055,8 @@ class X extends N {
1048
1055
  }
1049
1056
  addVertexAt(D, C = 0, B = 0, F = 0, A = 0) {
1050
1057
  if (D instanceof THREE.Vector3) {
1051
- let e = new i.mxcadassemblyimp.MdGePoint3d();
1052
- return e.x = D.x, e.y = D.y, e.z = D.z, this.imp.addVertexAt(A, e, C, B, F);
1058
+ let t = new r.mxcadassemblyimp.MdGePoint3d();
1059
+ return t.x = D.x, t.y = D.y, t.z = D.z, this.imp.addVertexAt(A, t, C, B, F);
1053
1060
  } else
1054
1061
  return this.imp.addVertexAt(A, D.imp, C, B, F);
1055
1062
  }
@@ -1060,7 +1067,7 @@ class X extends N {
1060
1067
  return this.imp.numVerts();
1061
1068
  }
1062
1069
  getPointAt(D) {
1063
- return { val: this.imp.getPointAt(D), ret: i.getCallResult() };
1070
+ return { val: this.imp.getPointAt(D), ret: r.getCallResult() };
1064
1071
  }
1065
1072
  getBulgeAt(D) {
1066
1073
  return this.imp.getBulgeAt(D);
@@ -1069,7 +1076,7 @@ class X extends N {
1069
1076
  return {
1070
1077
  val1: this.imp.getStartWidthsAt(D),
1071
1078
  val2: this.imp.getEndWidthsAt(D),
1072
- ret: i.getCallResult()
1079
+ ret: r.getCallResult()
1073
1080
  };
1074
1081
  }
1075
1082
  setPointAt(D, C) {
@@ -1079,18 +1086,18 @@ class X extends N {
1079
1086
  return this.imp.setBulgeAt(D, C);
1080
1087
  }
1081
1088
  }
1082
- class rD extends j {
1089
+ class oD extends W {
1083
1090
  constructor(D) {
1084
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockReference());
1091
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockReference());
1085
1092
  }
1086
1093
  get blockTableRecordId() {
1087
- return new M(this.imp.blockTableRecord(), f.kMxCAD);
1094
+ return new R(this.imp.blockTableRecord(), k.kMxCAD);
1088
1095
  }
1089
1096
  set blockTableRecordId(D) {
1090
1097
  this.imp.setBlockTableRecordId(D.id);
1091
1098
  }
1092
1099
  get position() {
1093
- return new a(this.imp.position());
1100
+ return new u(this.imp.position());
1094
1101
  }
1095
1102
  set position(D) {
1096
1103
  this.imp.setPosition(D.imp);
@@ -1108,18 +1115,18 @@ class rD extends j {
1108
1115
  this.imp.setRotation(D);
1109
1116
  }
1110
1117
  get blockTransform() {
1111
- return new V(this.imp.blockTransform());
1118
+ return new I(this.imp.blockTransform());
1112
1119
  }
1113
1120
  set blockTransform(D) {
1114
1121
  this.imp.setBlockTransform(D.imp);
1115
1122
  }
1116
1123
  }
1117
- class aD extends j {
1124
+ class cD extends W {
1118
1125
  constructor(D) {
1119
1126
  super(D);
1120
1127
  }
1121
1128
  get textPosition() {
1122
- return new a(this.imp.textPosition());
1129
+ return new u(this.imp.textPosition());
1123
1130
  }
1124
1131
  set textPosition(D) {
1125
1132
  this.imp.setTextPosition(D.imp);
@@ -1152,7 +1159,7 @@ class aD extends j {
1152
1159
  this.imp.setTextRotation(D);
1153
1160
  }
1154
1161
  get dimensionStyle() {
1155
- return new M(this.imp.dimensionStyle(), f.kMxCAD);
1162
+ return new R(this.imp.dimensionStyle(), k.kMxCAD);
1156
1163
  }
1157
1164
  set dimensionStyle(D) {
1158
1165
  this.imp.setDimensionStyle(D.id);
@@ -1191,33 +1198,33 @@ class aD extends j {
1191
1198
  this.imp.SetDimVarString(D, C);
1192
1199
  }
1193
1200
  getDimVarObjectId(D) {
1194
- return new M(
1201
+ return new R(
1195
1202
  this.imp.GetDimVarObjectId(D),
1196
- f.kMxCAD
1203
+ k.kMxCAD
1197
1204
  );
1198
1205
  }
1199
1206
  setDimVarObjectId(D, C) {
1200
1207
  this.imp.SetDimVarObjectId(D, C.id);
1201
1208
  }
1202
1209
  }
1203
- class sD extends aD {
1210
+ class aD extends cD {
1204
1211
  constructor(D) {
1205
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbAlignedDimension());
1212
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbAlignedDimension());
1206
1213
  }
1207
1214
  get xLine1Point() {
1208
- return new a(this.imp.xLine1Point());
1215
+ return new u(this.imp.xLine1Point());
1209
1216
  }
1210
1217
  set xLine1Point(D) {
1211
1218
  this.imp.setXLine1Point(D.imp);
1212
1219
  }
1213
1220
  get xLine2Point() {
1214
- return new a(this.imp.xLine2Point());
1221
+ return new u(this.imp.xLine2Point());
1215
1222
  }
1216
1223
  set xLine2Point(D) {
1217
1224
  this.imp.setXLine2Point(D.imp);
1218
1225
  }
1219
1226
  get dimLinePoint() {
1220
- return new a(this.imp.dimLinePoint());
1227
+ return new u(this.imp.dimLinePoint());
1221
1228
  }
1222
1229
  set dimLinePoint(D) {
1223
1230
  this.imp.setDimLinePoint(D.imp);
@@ -1229,24 +1236,24 @@ class sD extends aD {
1229
1236
  this.imp.setOblique(D);
1230
1237
  }
1231
1238
  }
1232
- class nD extends aD {
1239
+ class uD extends cD {
1233
1240
  constructor(D) {
1234
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbRotatedDimension());
1241
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbRotatedDimension());
1235
1242
  }
1236
1243
  get xLine1Point() {
1237
- return new a(this.imp.xLine1Point());
1244
+ return new u(this.imp.xLine1Point());
1238
1245
  }
1239
1246
  set xLine1Point(D) {
1240
1247
  this.imp.setXLine1Point(D.imp);
1241
1248
  }
1242
1249
  get xLine2Point() {
1243
- return new a(this.imp.xLine2Point());
1250
+ return new u(this.imp.xLine2Point());
1244
1251
  }
1245
1252
  set xLine2Point(D) {
1246
1253
  this.imp.setXLine2Point(D.imp);
1247
1254
  }
1248
1255
  get dimLinePoint() {
1249
- return new a(this.imp.dimLinePoint());
1256
+ return new u(this.imp.dimLinePoint());
1250
1257
  }
1251
1258
  set dimLinePoint(D) {
1252
1259
  this.imp.setDimLinePoint(D.imp);
@@ -1264,15 +1271,15 @@ class nD extends aD {
1264
1271
  this.imp.setRotation(D);
1265
1272
  }
1266
1273
  }
1267
- class DD extends N {
1274
+ class ED extends _ {
1268
1275
  constructor(D) {
1269
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbArc());
1276
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbArc());
1270
1277
  }
1271
1278
  setCenter(D, C, B) {
1272
- this.imp.setCenter(new a(D, C, B).imp);
1279
+ this.imp.setCenter(new u(D, C, B).imp);
1273
1280
  }
1274
1281
  get center() {
1275
- return new a(this.imp.center());
1282
+ return new u(this.imp.center());
1276
1283
  }
1277
1284
  set center(D) {
1278
1285
  this.imp.setCenter(D.imp);
@@ -1295,44 +1302,44 @@ class DD extends N {
1295
1302
  set endAngle(D) {
1296
1303
  this.imp.setEndAngle(D);
1297
1304
  }
1298
- computeArc(D, C, B, F, A, e) {
1305
+ computeArc(D, C, B, F, A, t) {
1299
1306
  return this.imp.computeArc(
1300
1307
  D,
1301
1308
  C,
1302
1309
  B,
1303
1310
  F,
1304
1311
  A,
1305
- e
1312
+ t
1306
1313
  );
1307
1314
  }
1308
1315
  }
1309
- class uD extends N {
1310
- constructor(D, C, B, F, A, e, t, r, s) {
1311
- D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (t || (t = 1), typeof r != "number" && (r = 0), typeof s != "number" && (s = 6.283185307179586), this.imp.Init(new a(D, C, B).imp, new w(F, A, e).imp, t, r, s)));
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)));
1312
1319
  }
1313
1320
  setCenter(D, C, B) {
1314
- this.imp.setCenter(new a(D, C, B).imp);
1321
+ this.imp.setCenter(new u(D, C, B).imp);
1315
1322
  }
1316
1323
  get center() {
1317
- return new a(this.imp.center());
1324
+ return new u(this.imp.center());
1318
1325
  }
1319
1326
  set center(D) {
1320
1327
  this.imp.setCenter(D.imp);
1321
1328
  }
1322
1329
  setMajorAxis(D, C, B) {
1323
- this.imp.setMajorAxis(new w(D, C, B).imp);
1330
+ this.imp.setMajorAxis(new y(D, C, B).imp);
1324
1331
  }
1325
1332
  get majorAxis() {
1326
- return new w(this.imp.majorAxis());
1333
+ return new y(this.imp.majorAxis());
1327
1334
  }
1328
1335
  set majorAxis(D) {
1329
1336
  this.imp.setMajorAxis(D.imp);
1330
1337
  }
1331
1338
  setMinorAxis(D, C, B) {
1332
- this.imp.setMinorAxis(new w(D, C, B).imp);
1339
+ this.imp.setMinorAxis(new y(D, C, B).imp);
1333
1340
  }
1334
1341
  get minorAxis() {
1335
- return new w(this.imp.minorAxis());
1342
+ return new y(this.imp.minorAxis());
1336
1343
  }
1337
1344
  set minorAxis(D) {
1338
1345
  this.imp.setMinorAxis(D.imp);
@@ -1356,13 +1363,13 @@ class uD extends N {
1356
1363
  this.imp.setEndAngle(D);
1357
1364
  }
1358
1365
  }
1359
- function z(E = null) {
1366
+ function K(E = null) {
1360
1367
  let D;
1361
- return E == null ? D = new i.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1368
+ return E == null ? D = new r.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1362
1369
  }
1363
- class q extends G {
1370
+ class $ extends V {
1364
1371
  constructor(D) {
1365
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.McDrawResbuf());
1372
+ super(D), D || this.initTempObject(new r.mxcadassemblyimp.McDrawResbuf());
1366
1373
  }
1367
1374
  Clear() {
1368
1375
  this.imp.Clear();
@@ -1371,16 +1378,16 @@ class q extends G {
1371
1378
  return this.imp.GetCount();
1372
1379
  }
1373
1380
  AtDouble(D) {
1374
- return { val: this.imp.AtDouble(D), ret: i.getCallResult() };
1381
+ return { val: this.imp.AtDouble(D), ret: r.getCallResult() };
1375
1382
  }
1376
1383
  Atlong(D) {
1377
- return { val: this.imp.Atlong(D), ret: i.getCallResult() };
1384
+ return { val: this.imp.Atlong(D), ret: r.getCallResult() };
1378
1385
  }
1379
1386
  AtObject(D) {
1380
1387
  if (this.imp.AtObjectName(D) == "McDbMText") {
1381
1388
  let B = this.imp.AtObjectMdDbMText(D);
1382
1389
  if (B)
1383
- return { val: new Q(B), ret: i.getCallResult() };
1390
+ return { val: new CD(B), ret: r.getCallResult() };
1384
1391
  }
1385
1392
  return { val: void 0, ret: -1 };
1386
1393
  }
@@ -1388,13 +1395,13 @@ class q extends G {
1388
1395
  this.imp.AddObject(D.getImp());
1389
1396
  }
1390
1397
  AtObjectId(D) {
1391
- return { val: new M(this.imp.AtObjectId(D), f.kMxCAD), ret: i.getCallResult() };
1398
+ return { val: new R(this.imp.AtObjectId(D), k.kMxCAD), ret: r.getCallResult() };
1392
1399
  }
1393
1400
  AtString(D, C = !0) {
1394
- return C ? { val: g.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() } : { val: this.imp.AtString(D), ret: i.getCallResult() };
1401
+ return C ? { val: P.decodeFromGb2312(this.imp.AtString(D)), ret: r.getCallResult() } : { val: this.imp.AtString(D), ret: r.getCallResult() };
1395
1402
  }
1396
1403
  AtPoint(D) {
1397
- return { val: new a(this.imp.AtPoint(D)), ret: i.getCallResult() };
1404
+ return { val: new u(this.imp.AtPoint(D)), ret: r.getCallResult() };
1398
1405
  }
1399
1406
  ItemDataType() {
1400
1407
  return this.imp.ItemDataType();
@@ -1409,7 +1416,7 @@ class q extends G {
1409
1416
  return this.imp.AddObjectId(D, C);
1410
1417
  }
1411
1418
  AddString(D, C = -10, B = !0) {
1412
- return B ? this.imp.AddString(g.encodeToGb2312(D), C) : this.imp.AddString(D, C);
1419
+ return B ? this.imp.AddString(P.encodeToGb2312(D), C) : this.imp.AddString(D, C);
1413
1420
  }
1414
1421
  AddPoint(D, C = -10) {
1415
1422
  return this.imp.AddPoint(D.imp, C);
@@ -1421,7 +1428,7 @@ class q extends G {
1421
1428
  this.imp.Remove(D);
1422
1429
  }
1423
1430
  }
1424
- class OD {
1431
+ class GD {
1425
1432
  imp;
1426
1433
  constructor() {
1427
1434
  }
@@ -1433,59 +1440,59 @@ class OD {
1433
1440
  }
1434
1441
  findEntAtPoint(D, C, B, F = -1, A = null) {
1435
1442
  this.init();
1436
- let e = this.imp.findEntAtPoint(D, C, B, F, z(A));
1437
- return new M(e, f.kMxCAD);
1443
+ let t = this.imp.findEntAtPoint(D, C, B, F, K(A));
1444
+ return new R(t, k.kMxCAD);
1438
1445
  }
1439
1446
  selectEnt(D, C = null) {
1440
1447
  return this.init(), new Promise(async (B) => {
1441
- const F = new T();
1442
- D && F.setMessage(D), F.setCursorType(dD.kRect);
1448
+ const F = new S();
1449
+ D && F.setMessage(D), F.setCursorType(wD.kRect);
1443
1450
  let A = await F.go();
1444
1451
  if (!A) {
1445
1452
  B([]);
1446
1453
  return;
1447
1454
  }
1448
- hD.findEntAtPoint(A).then((e) => {
1449
- let t = [];
1450
- e.forEach((s) => {
1451
- t.push(new M(s, f.kMxDraw));
1455
+ gD.findEntAtPoint(A).then((t) => {
1456
+ let e = [];
1457
+ t.forEach((s) => {
1458
+ e.push(new R(s, k.kMxDraw));
1452
1459
  });
1453
- let r = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
1454
- r.isValid() && t.push(r), B(t);
1460
+ let i = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
1461
+ i.isValid() && e.push(i), B(e);
1455
1462
  });
1456
1463
  });
1457
1464
  }
1458
1465
  getCurrentSelect() {
1459
1466
  let D = [];
1460
1467
  return h.getCurrentDraw().getMxCurrentSelect().forEach((F) => {
1461
- D.push(new M(F, f.kMxDraw));
1468
+ D.push(new R(F, k.kMxDraw));
1462
1469
  }), h.getCurrentDraw().getMxCADCurrentSelect().forEach((F) => {
1463
- D.push(new M(F, f.kMxCAD));
1470
+ D.push(new R(F, k.kMxCAD));
1464
1471
  }), D;
1465
1472
  }
1466
1473
  init() {
1467
- this.imp || (this.imp = new i.mxcadassemblyimp.McDrawUtility());
1474
+ this.imp || (this.imp = new r.mxcadassemblyimp.McDrawUtility());
1468
1475
  }
1469
1476
  }
1470
- let $ = new OD();
1471
- class BD extends G {
1477
+ let z = new GD();
1478
+ class q extends V {
1472
1479
  constructor() {
1473
- super(), this.initTempObject(new i.mxcadassemblyimp.McDrawSelSet());
1480
+ super(), this.initTempObject(new r.mxcadassemblyimp.McDrawSelSet());
1474
1481
  }
1475
1482
  allSelect(D = null) {
1476
- return this.imp.allSelect(z(D));
1483
+ return this.imp.allSelect(K(D));
1477
1484
  }
1478
1485
  pointSelect(D, C, B = null, F = -1) {
1479
- return this.imp.pointSelect(D, C, z(B), F);
1486
+ return this.imp.pointSelect(D, C, K(B), F);
1480
1487
  }
1481
1488
  crossingSelect(D, C, B, F, A = null) {
1482
- return this.imp.crossingSelect(D, C, B, F, z(A));
1489
+ return this.imp.crossingSelect(D, C, B, F, K(A));
1483
1490
  }
1484
1491
  count() {
1485
1492
  return this.imp.count();
1486
1493
  }
1487
1494
  item(D) {
1488
- return new M(this.imp.item(D), f.kMxCAD);
1495
+ return new R(this.imp.item(D), k.kMxCAD);
1489
1496
  }
1490
1497
  forEach(D) {
1491
1498
  let C = this.imp.count();
@@ -1499,39 +1506,128 @@ class BD extends G {
1499
1506
  return D;
1500
1507
  }
1501
1508
  async userSelect(D, C = null) {
1502
- let B = new T();
1503
- D && B.setMessage(D), B.setCursorType(dD.kRect), B.setDynamicInputType(ZD.kDynTip);
1509
+ let B = new S();
1510
+ D && B.setMessage(D), B.setCursorType(wD.kRect), B.setDynamicInputType(QD.kDynTip), B.setDisableOsnap(!0);
1504
1511
  let F = 0;
1505
1512
  for (; ; ) {
1506
1513
  let A = await B.go();
1507
1514
  if (F = B.getDetailedResult(), !A)
1508
1515
  break;
1509
- let e = await hD.getCorner(A, D, !0, (t) => {
1510
- F = t.detailedResult;
1516
+ let t = await gD.getCorner(A, D, !0, (e) => {
1517
+ F = e.detailedResult;
1511
1518
  });
1512
- if (!e)
1519
+ if (!t)
1513
1520
  break;
1514
- this.imp.userSelect(A.x, A.y, e.x, e.y, z(C));
1521
+ this.imp.userSelect(A.x, A.y, t.x, t.y, K(C));
1515
1522
  }
1516
- return this.imp.highlightEntity(!1), F == FD.kEcsIn || F == FD.kNewCommadIn || F == FD.kUnknown ? new Promise((A) => {
1523
+ return this.imp.highlightEntity(!1), F == eD.kEcsIn || F == eD.kNewCommadIn || F == eD.kUnknown ? new Promise((A) => {
1517
1524
  A(!1);
1518
1525
  }) : new Promise((A) => {
1519
1526
  A(!0);
1520
1527
  });
1521
1528
  }
1522
1529
  }
1523
- class K {
1530
+ class Y {
1531
+ imp;
1532
+ constructor() {
1533
+ this.imp = new S();
1534
+ }
1535
+ go() {
1536
+ return new Promise((D, C) => {
1537
+ this.imp.go((B) => {
1538
+ B != 0 ? C(null) : D(new u(this.imp.value()));
1539
+ });
1540
+ });
1541
+ }
1542
+ keyWords() {
1543
+ return this.imp.keyWords();
1544
+ }
1545
+ setKeyWords(D) {
1546
+ this.imp.setKeyWords(D);
1547
+ }
1548
+ message() {
1549
+ return this.imp.message();
1550
+ }
1551
+ setMessage(D) {
1552
+ this.imp.setMessage(D);
1553
+ }
1554
+ keyWordPicked() {
1555
+ return this.imp.keyWordPicked();
1556
+ }
1557
+ isKeyWordPicked(D) {
1558
+ return this.imp.isKeyWordPicked(D);
1559
+ }
1560
+ setUserDraw(D) {
1561
+ this.imp.setUserDraw((C, B) => {
1562
+ D(new u(C), B);
1563
+ });
1564
+ }
1565
+ value() {
1566
+ return new u(this.imp.value());
1567
+ }
1568
+ getCADValue() {
1569
+ return this.imp.getCADValue();
1570
+ }
1571
+ basePt() {
1572
+ return new u(this.imp.basePt());
1573
+ }
1574
+ setBasePt(D) {
1575
+ this.imp.setBasePt(D.toVector3());
1576
+ }
1577
+ setUseBasePt(D) {
1578
+ this.imp.setUseBasePt(D);
1579
+ }
1580
+ getDetailedResult() {
1581
+ return this.imp.getDetailedResult();
1582
+ }
1583
+ getStatus() {
1584
+ return this.imp.getStatus();
1585
+ }
1586
+ drawReserve(D) {
1587
+ this.imp.drawReserve(D);
1588
+ }
1589
+ setInputToucheType(D) {
1590
+ this.imp.setInputToucheType(D);
1591
+ }
1592
+ getInputToucheType() {
1593
+ return this.imp.getInputToucheType();
1594
+ }
1595
+ setCursorType(D) {
1596
+ this.imp.setCursorType(D);
1597
+ }
1598
+ getCursorType() {
1599
+ return this.imp.getCursorType();
1600
+ }
1601
+ setDynamicInputType(D) {
1602
+ this.imp.setDynamicInputType(D);
1603
+ }
1604
+ getDynamicInputType() {
1605
+ return this.imp.getDynamicInputType();
1606
+ }
1607
+ isDisableDynInput() {
1608
+ return this.imp.isDisableDynInput();
1609
+ }
1610
+ setDisableDynInput(D) {
1611
+ this.imp.setDisableDynInput(D);
1612
+ }
1613
+ setDisableOsnap(D) {
1614
+ this.imp.setDisableOsnap(D);
1615
+ }
1616
+ isDisableOsnap() {
1617
+ return this.imp.isDisableOsnap();
1618
+ }
1619
+ }
1620
+ class H {
1524
1621
  imp;
1525
- mxObject;
1526
1622
  static currentFileName;
1527
1623
  constructor(D) {
1528
1624
  this.imp = D;
1529
1625
  }
1530
1626
  initMxObject(D) {
1531
- this.mxObject = D;
1627
+ this.imp.mxdrawObject = D;
1532
1628
  }
1533
1629
  getMxDrawObject() {
1534
- return this.mxObject;
1630
+ return this.imp.mxdrawObject;
1535
1631
  }
1536
1632
  getImp() {
1537
1633
  return this.imp;
@@ -1543,17 +1639,17 @@ class K {
1543
1639
  this.imp.test();
1544
1640
  }
1545
1641
  openWebFile(D, C, B = !0) {
1546
- let F = Math.round(Math.random() * 1e7);
1642
+ let F = this.imp.mxdrawObject, A = Math.round(Math.random() * 1e7);
1547
1643
  if (C) {
1548
- let A = this, e = (t, r) => {
1549
- A.mxObject.removeEventFuction("openFileComplete", e), F == r && C(t);
1644
+ let t = (e, i) => {
1645
+ F.removeEventFuction("openFileComplete", t), A == i && C(e);
1550
1646
  };
1551
- A.mxObject.addEvent("openFileComplete", e);
1647
+ F.addEvent("openFileComplete", t);
1552
1648
  }
1553
- return K.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, F);
1649
+ return H.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, A);
1554
1650
  }
1555
1651
  getCurrentFileName() {
1556
- return K.currentFileName;
1652
+ return H.currentFileName;
1557
1653
  }
1558
1654
  saveFileToUrl(D, C) {
1559
1655
  const B = window;
@@ -1564,12 +1660,12 @@ class K {
1564
1660
  saveFile(D, C, B = !0, F = !0) {
1565
1661
  D || (D = this.getCurrentFileName()), D.indexOf(".") == -1 && (D += ".mxweb");
1566
1662
  const A = window;
1567
- return A.mx_saveFile_call = (e) => {
1568
- if (C && C(e), !!e) {
1663
+ return A.mx_saveFile_call = (t) => {
1664
+ if (C && C(t), !!t) {
1569
1665
  if (B) {
1570
- let t;
1571
- /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? t = new Blob([e.buffer], { type: "application/octet-stream" }) : t = new Blob([e.buffer], { type: "application/octet-binary" }), F ? _.saveAsFileDialog({
1572
- blob: t,
1666
+ let e;
1667
+ /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? e = new Blob([t.buffer], { type: "application/octet-stream" }) : e = new Blob([t.buffer], { type: "application/octet-binary" }), F ? J.saveAsFileDialog({
1668
+ blob: e,
1573
1669
  filename: D,
1574
1670
  types: [{
1575
1671
  description: "mxweb File",
@@ -1577,14 +1673,14 @@ class K {
1577
1673
  "application/octet-stream": [".mxweb"]
1578
1674
  }
1579
1675
  }]
1580
- }) : _.downloadFile(t, D);
1676
+ }) : J.downloadFile(e, D);
1581
1677
  }
1582
1678
  A.mx_saveFile_call = null;
1583
1679
  }
1584
1680
  }, this.imp.saveFile(D);
1585
1681
  }
1586
1682
  GetDatabase() {
1587
- return this.imp.McDbDatabase || (this.imp.McDbDatabase = new oD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1683
+ return this.imp.McDbDatabase || (this.imp.McDbDatabase = new lD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1588
1684
  }
1589
1685
  GetSysVarString(D) {
1590
1686
  return this.imp.GetSysVarString(D);
@@ -1605,7 +1701,7 @@ class K {
1605
1701
  return this.imp.SetSysVarLong(D, C);
1606
1702
  }
1607
1703
  get DrawColor() {
1608
- return new I(this.imp.GetDrawColor());
1704
+ return new U(this.imp.GetDrawColor());
1609
1705
  }
1610
1706
  set DrawColor(D) {
1611
1707
  this.imp.SetDrawColor(D.getImp());
@@ -1652,8 +1748,8 @@ class K {
1652
1748
  AddLinetypeEx(D, C, B) {
1653
1749
  this.imp.AddLinetypeEx(D, C, B);
1654
1750
  }
1655
- DrawLine(D, C, B, F, A, e) {
1656
- return this.imp.DrawLine(D, C, B, F, A, e);
1751
+ DrawLine(D, C, B, F, A, t) {
1752
+ return this.imp.DrawLine(D, C, B, F, A, t);
1657
1753
  }
1658
1754
  AddDimStyle(D, C, B, F, A) {
1659
1755
  return this.imp.AddDimStyle(D, C, B, F, A);
@@ -1679,8 +1775,8 @@ class K {
1679
1775
  DrawArc(D, C, B, F, A) {
1680
1776
  return this.imp.DrawArc(D, C, B, F, A);
1681
1777
  }
1682
- DrawArc2(D, C, B, F, A, e) {
1683
- return this.imp.DrawArc2(D, C, B, F, A, e);
1778
+ DrawArc2(D, C, B, F, A, t) {
1779
+ return this.imp.DrawArc2(D, C, B, F, A, t);
1684
1780
  }
1685
1781
  DrawCircle(D, C, B) {
1686
1782
  return this.imp.DrawCircle(D, C, B);
@@ -1688,35 +1784,35 @@ class K {
1688
1784
  DrawEllipse(D, C, B, F, A) {
1689
1785
  return this.imp.DrawEllipse(D, C, B, F, A);
1690
1786
  }
1691
- DrawEllipseArc(D, C, B, F, A, e, t) {
1692
- return this.imp.DrawEllipseArc(D, C, B, F, A, e, t);
1787
+ DrawEllipseArc(D, C, B, F, A, t, e) {
1788
+ return this.imp.DrawEllipseArc(D, C, B, F, A, t, e);
1693
1789
  }
1694
1790
  DrawPoint(D, C) {
1695
1791
  return this.imp.DrawPoint(D, C);
1696
1792
  }
1697
- DrawSolid(D, C, B, F, A, e, t, r) {
1698
- return this.imp.DrawSolid(D, C, B, F, A, e, t, r);
1793
+ DrawSolid(D, C, B, F, A, t, e, i) {
1794
+ return this.imp.DrawSolid(D, C, B, F, A, t, e, i);
1699
1795
  }
1700
- DrawMText(D, C, B, F, A, e, t) {
1701
- return this.imp.DrawMText(D, C, B, F, A, e, t);
1796
+ DrawMText(D, C, B, F, A, t, e) {
1797
+ return this.imp.DrawMText(D, C, B, F, A, t, e);
1702
1798
  }
1703
- DrawText(D, C, B, F, A, e, t) {
1704
- return this.imp.DrawTextDrawText(D, C, B, F, A, e, t);
1799
+ DrawText(D, C, B, F, A, t, e) {
1800
+ return this.imp.DrawTextDrawText(D, C, B, F, A, t, e);
1705
1801
  }
1706
1802
  DrawBlockReference(D, C, B, F, A) {
1707
1803
  return this.imp.DrawBlockReference(D, C, B, F, A);
1708
1804
  }
1709
- DrawDimAligned(D, C, B, F, A, e) {
1710
- return this.imp.DrawDimAligned(D, C, B, F, A, e);
1805
+ DrawDimAligned(D, C, B, F, A, t) {
1806
+ return this.imp.DrawDimAligned(D, C, B, F, A, t);
1711
1807
  }
1712
- DrawDimAngular(D, C, B, F, A, e, t, r) {
1713
- return this.imp.DrawDimAngular(D, C, B, F, A, e, t, r);
1808
+ DrawDimAngular(D, C, B, F, A, t, e, i) {
1809
+ return this.imp.DrawDimAngular(D, C, B, F, A, t, e, i);
1714
1810
  }
1715
1811
  DrawDimDiametric(D, C, B, F, A) {
1716
1812
  return this.imp.DrawDimDiametric(D, C, B, F, A);
1717
1813
  }
1718
- DrawDimRotated(D, C, B, F, A, e, t) {
1719
- return this.imp.DrawDimRotated(D, C, B, F, A, e, t);
1814
+ DrawDimRotated(D, C, B, F, A, t, e) {
1815
+ return this.imp.DrawDimRotated(D, C, B, F, A, t, e);
1720
1816
  }
1721
1817
  DrawDimOrdinate(D, C, B, F, A) {
1722
1818
  return this.imp.DrawDimOrdinate(D, C, B, F, A);
@@ -1752,25 +1848,28 @@ class K {
1752
1848
  return this.imp.DrawEntity(D.getImp());
1753
1849
  }
1754
1850
  ObjectIdToObject(D) {
1755
- return i.App.ObjectIdToObject(D);
1851
+ return r.App.ObjectIdToObject(D);
1756
1852
  }
1757
1853
  DestroyObject(D) {
1758
- !D || i.App.getImp().DestroyObject(D);
1854
+ !D || r.App.getImp().DestroyObject(D);
1759
1855
  }
1760
1856
  GetAllLayoutName() {
1761
- return new TD(this.imp.GetAllLayoutName());
1857
+ return new RD(this.imp.GetAllLayoutName());
1762
1858
  }
1763
1859
  SetCurrentLayout(D) {
1764
- this.imp.SetCurrentLayout(g.encodeToGb2312(D));
1860
+ this.imp.SetCurrentLayout(P.encodeToGb2312(D));
1765
1861
  }
1766
1862
  GetMxCpp() {
1767
- return i;
1863
+ return r;
1864
+ }
1865
+ docCoord2Cad(D) {
1866
+ return new u(this.imp.mxdrawObject.docCoord2Cad(D.x, D.y, D.z));
1768
1867
  }
1769
1868
  }
1770
- class jD {
1869
+ class WD {
1771
1870
  imp;
1772
1871
  init(D) {
1773
- this.imp = D, w.kZAxis = new w(0, 0, 1), w.kXAxis = new w(1, 0, 0), w.kYAxis = new w(0, 1, 0), a.kOrigin = new a(0, 0, 0), V.kIdentity = new V();
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();
1774
1873
  }
1775
1874
  getImp() {
1776
1875
  return this.imp;
@@ -1779,63 +1878,66 @@ class jD {
1779
1878
  return this.imp.getLastCallResult();
1780
1879
  }
1781
1880
  CreateMxCAD(D, C, B, F, A) {
1782
- let e = this.imp.CreateMxDraw(D, C, B, F, A);
1783
- return new K(e);
1881
+ let t = this.imp.CreateMxDraw(D, C, B, F, A);
1882
+ return new H(t);
1784
1883
  }
1785
1884
  DestroyObject(D) {
1786
1885
  this.imp.DestroyObject(D);
1787
1886
  }
1788
1887
  GetCurrentMxCAD() {
1789
1888
  let D = this.imp.GetCurrentMxDraw();
1790
- return D.McObject || (D.McObject = new K(this.imp.GetCurrentMxDraw())), D.McObject;
1889
+ return D.McObject || (D.McObject = new H(this.imp.GetCurrentMxDraw())), D.McObject;
1791
1890
  }
1792
1891
  mcedRGB2Index(D, C, B, F = !0) {
1793
1892
  return this.imp.mcedRGB2Index(D, C, B, F);
1794
1893
  }
1894
+ ObjectIdIsKindOf(D, C) {
1895
+ return this.imp.ObjectIdIsKindOf(D, C);
1896
+ }
1795
1897
  ObjectIdToObject(D) {
1796
1898
  if (!D)
1797
1899
  return null;
1798
1900
  let C = this.imp.ObjectIdToObjectName(D);
1799
1901
  if (C == "McDbLine") {
1800
1902
  let B = this.imp.ObjectIdToMdDbLine(D);
1801
- return new Y(B);
1903
+ return new DD(B);
1802
1904
  } else if (C == "McDbText") {
1803
1905
  let B = this.imp.ObjectIdToMdDbText(D);
1804
- return new iD(B);
1906
+ return new nD(B);
1805
1907
  } else if (C == "McDbPolyline") {
1806
1908
  let B = this.imp.ObjectIdToMdDbPolyline(D);
1807
- return new X(B);
1909
+ return new BD(B);
1808
1910
  } else if (C == "McDbCircle") {
1809
1911
  let B = this.imp.ObjectIdToMdDbCircle(D);
1810
- return new O(B);
1912
+ return new G(B);
1811
1913
  } else if (C == "McDbArc") {
1812
1914
  let B = this.imp.ObjectIdToMdDbArc(D);
1813
- return new DD(B);
1915
+ return new ED(B);
1814
1916
  } else if (C == "McDbBlockReference") {
1815
1917
  let B = this.imp.ObjectIdToMdDbBlockReference(D);
1816
- return new rD(B);
1918
+ return new oD(B);
1817
1919
  } else if (C == "McDbAlignedDimension") {
1818
1920
  let B = this.imp.ObjectIdToMdDbAlignedDimension(D);
1819
- return new sD(B);
1921
+ return new aD(B);
1820
1922
  } else if (C == "McDbRotatedDimension") {
1821
1923
  let B = this.imp.ObjectIdToMdDbRotatedDimension(D);
1822
- return new nD(B);
1924
+ return new uD(B);
1823
1925
  } else if (C == "McDbMText") {
1824
1926
  let B = this.imp.ObjectIdToMdDbMText(D);
1825
- return new Q(B);
1927
+ return new CD(B);
1826
1928
  } else if (this.imp.ObjectIdIsKindOf(D, "McDbEntity")) {
1827
1929
  let B = this.imp.ObjectIdToMdDbEntity(D);
1828
- return new j(B);
1930
+ return new W(B);
1829
1931
  } else {
1830
1932
  let B = this.imp.ObjectIdToMdObject(D);
1831
- return new v(B);
1933
+ return new j(B);
1832
1934
  }
1833
1935
  }
1834
1936
  CreateCloneObject(D) {
1835
1937
  if (!D)
1836
1938
  return null;
1837
1939
  let C = D.getObjectName(), B = null;
1838
- return C == "McDbLine" ? B = new Y() : C == "McDbText" ? B = new iD() : C == "McDbPolyline" ? B = new X() : C == "McDbCircle" ? B = new O() : C == "McDbArc" ? B = new DD() : C == "McDbBlockReference" ? B = new rD() : C == "McDbAlignedDimension" ? B = new sD() : C == "McDbRotatedDimension" ? B = new nD() : C == "McDbMText" ? B = new Q() : D.isKindOf("McDbEntity") && (B = new j(), B.initTempObject(new i.mxcadassemblyimp.MdDbEntity())), B ? (B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B) : new v(D);
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);
1839
1941
  }
1840
1942
  setFontFilePath(D) {
1841
1943
  this.imp.setFontFilePath(D);
@@ -1846,9 +1948,9 @@ class jD {
1846
1948
  });
1847
1949
  }
1848
1950
  }
1849
- class GD {
1951
+ class VD {
1850
1952
  mxcadassemblyimp;
1851
- App = new jD();
1953
+ App = new WD();
1852
1954
  getCallResult() {
1853
1955
  return this.App.getLastCallResult();
1854
1956
  }
@@ -1857,7 +1959,7 @@ class GD {
1857
1959
  let F = D.z || 0;
1858
1960
  D = h.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
1859
1961
  }
1860
- let B = new a();
1962
+ let B = new u();
1861
1963
  return D && D.x && D.y && (B.x = D.x, B.y = D.y, D.z && (B.y = D.z)), B;
1862
1964
  }
1863
1965
  GetCurrentMxCAD() {
@@ -1867,43 +1969,43 @@ class GD {
1867
1969
  return this.App.GetCurrentMxCAD().GetDatabase();
1868
1970
  }
1869
1971
  }
1870
- const lD = "1.0.74", rC = "SharedArrayBuffer" in window, ED = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), sC = (E, D = self.location.href) => ED ? `https://unpkg.com/mxcad@${lD}/dist/wasm/2d-st/${E}` : D + E, nC = (E, D = self.location.href) => ED ? `https://unpkg.com/mxcad@${lD}/dist/wasm/2d/${E}` : D + E, oC = (E, D = self.location.href) => ED ? `https://unpkg.com/mxcad@${lD}/dist/wasm/3d/${E}` : D + E, ID = (E) => new Promise((D, C) => {
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) => {
1871
1973
  const B = document.createElement("script");
1872
1974
  B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
1873
1975
  D();
1874
1976
  }, B.onerror = (F) => {
1875
1977
  C(F);
1876
1978
  };
1877
- }), aC = async (E, D, C) => {
1979
+ }), lC = async (E, D, C) => {
1878
1980
  const { locateFile: B } = C, F = B(E + ".js");
1879
- return await ID(F), await globalThis[D](C);
1981
+ return await UD(F), await globalThis[D](C);
1880
1982
  };
1881
- let i;
1882
- async function WD(E, D = rC || !ED ? sC : nC, C, B, F) {
1883
- return new Promise(async (A, e) => {
1983
+ let r;
1984
+ async function zD(E, D = nC || !AD ? oC : aC, C, B, F) {
1985
+ return new Promise(async (A, t) => {
1884
1986
  try {
1885
- if (i || (i = new GD()), i.mxcadassemblyimp)
1886
- return E && E(i), A(i);
1887
- const r = await aC("mxdrawassembly_min", "mxdrawassembly", {
1987
+ if (r || (r = new VD()), r.mxcadassemblyimp)
1988
+ return E && E(r), A(r);
1989
+ const i = await lC("mxdrawassembly_min", "mxdrawassembly", {
1888
1990
  locateFile: D,
1889
1991
  wasmBinary: C
1890
1992
  });
1891
- i.mxcadassemblyimp = r;
1892
- let s = new r.McApp();
1893
- B && s.setFontFilePath(B), s.Init(), i.App.init(s), F && i.App.addNetworkLoadingFont(F), E && E(i), A(i);
1894
- } catch (t) {
1895
- e(t);
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);
1996
+ } catch (e) {
1997
+ t(e);
1896
1998
  }
1897
1999
  });
1898
2000
  }
1899
- const uC = (E) => {
2001
+ const cC = (E) => {
1900
2002
  let D = null;
1901
2003
  if (typeof E == "string" ? D = document.querySelector(E) : E instanceof HTMLCanvasElement && (D = E), !!D)
1902
2004
  return D.id || (D.id = Math.random().toString(16).slice(2)), D.id;
1903
- }, lC = (E, D) => new Promise((C, B) => {
2005
+ }, mC = (E, D) => new Promise((C, B) => {
1904
2006
  try {
1905
2007
  h.createMxObject({
1906
- canvasId: uC(E),
2008
+ canvasId: cC(E),
1907
2009
  isCPPMxCAD: !0,
1908
2010
  userIdentitySign: D,
1909
2011
  callback(F) {
@@ -1915,28 +2017,28 @@ const uC = (E) => {
1915
2017
  } catch (F) {
1916
2018
  B(F);
1917
2019
  }
1918
- }), cC = async (E) => {
1919
- wD.state.MxFun || await YD();
1920
- const { multipleSelect: D, networkFonts: C, fontspath: B, locateFile: F, wasmBinary: A, canvas: e, userIdentitySign: t, onOpenFileComplete: r, fileUrl: s, onInit: o = () => {
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 = () => {
1921
2023
  h.setIniset({
1922
2024
  EnableIntelliSelect: !0,
1923
2025
  IntelliSelectType: 1,
1924
2026
  multipleSelect: !!D
1925
2027
  });
1926
2028
  } } = E || {};
1927
- await WD(() => {
2029
+ await zD(() => {
1928
2030
  }, F, A, B, C), o();
1929
- let u = await lC(e, t);
1930
- const p = h.getMxFunTHREE();
1931
- let d = new p.Vector2();
1932
- u.getRenderer().getSize(d);
1933
- const n = i.App.CreateMxCAD(d.width, d.height, u.getCanvas().id, u.isWebgl2(), u.getId());
1934
- return u.initMxCpp(n), u.addEvent("openFileComplete", () => {
1935
- r && r();
2031
+ let a = await mC(t, e);
2032
+ const l = h.getMxFunTHREE();
2033
+ 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();
1936
2038
  }), s && n.openWebFile(s), n;
1937
2039
  };
1938
- async function mC() {
1939
- const E = new T();
2040
+ async function dC() {
2041
+ const E = new S();
1940
2042
  E.setMessage(`
1941
2043
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
1942
2044
  let D = await E.go();
@@ -1946,7 +2048,7 @@ async function mC() {
1946
2048
  if (C.length <= 0)
1947
2049
  return;
1948
2050
  let B = h.screenCoordLong2Doc(50);
1949
- C = _.b64Encode(C);
2051
+ C = J.b64Encode(C);
1950
2052
  const F = {
1951
2053
  postx: D.x,
1952
2054
  posty: D.y,
@@ -1955,86 +2057,86 @@ async function mC() {
1955
2057
  };
1956
2058
  h.call("Mx_Text", F);
1957
2059
  }
1958
- class pC extends yD {
2060
+ class hC extends bD {
1959
2061
  getGripPoints() {
1960
2062
  const { x: D, y: C, z: B } = this.center;
1961
- let F = new THREE.Vector3(D, C + this.radius, B), A = new THREE.Vector3(D, C - this.radius, B), e = new THREE.Vector3(D - this.radius, C, B), t = new THREE.Vector3(D + this.radius, C, B);
1962
- return [this.center, F, A, e, t];
2063
+ 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);
2064
+ return [this.center, F, A, t, e];
1963
2065
  }
1964
2066
  moveGripPointsAt(D, C) {
1965
- const [B, F, A, e, t] = this.getGripPoints();
1966
- 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 = e.add(C).distanceTo(this.center)), D === 4 && (this.radius = t.add(C).distanceTo(this.center)), !0;
2067
+ const [B, F, A, t, e] = this.getGripPoints();
2068
+ 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;
1967
2069
  }
1968
2070
  }
1969
- const mD = (E) => {
1970
- const [D, C, B] = E, { x: F, y: A, z: e } = D, { x: t, y: r, z: s } = C, { x: o, y: u, z: p } = B, d = A * s - r * e - A * p + u * e + r * p - u * s, n = -(F * s - t * e - F * p + o * e + t * p - o * s), c = F * r - t * A - F * u + o * A + t * u - o * r, y = -(F * r * p - F * u * s - t * A * p + t * u * e + o * A * s - o * r * e), b = 2 * (t - F), l = 2 * (r - A), m = 2 * (s - e), W = F * F + A * A + e * e - t * t - r * r - s * s, P = 2 * (o - F), S = 2 * (u - A), R = 2 * (p - e), U = F * F + A * A + e * e - o * o - u * u - p * p, _D = -(n * m * U - n * R * W - l * c * U + l * R * y + S * c * W - S * m * y) / (d * l * R - d * S * m - b * n * R + b * S * c + P * n * m - P * l * c), $D = (d * m * U - d * R * W - b * c * U + b * R * y + P * c * W - P * m * y) / (d * l * R - d * S * m - b * n * R + b * S * c + P * n * m - P * l * c), JD = -(d * l * U - d * S * W - b * n * U + b * S * y + P * n * W - P * l * y) / (d * l * R - d * S * m - b * n * R + b * S * c + P * n * m - P * l * c);
1971
- return new THREE.Vector3(_D, $D, JD);
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);
1972
2074
  };
1973
- function UD() {
1974
- const E = new T();
1975
- let D = new pC(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor();
1976
- L.use(D), D.closed = !1, D.setColor(C);
2075
+ function KD() {
2076
+ const E = new S();
2077
+ let D = new hC(), C = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2078
+ v.use(D), D.closed = !1, D.setColor(C);
1977
2079
  let B = 0, F = "default", A = !0;
1978
- const e = () => {
2080
+ const t = () => {
1979
2081
  E.setUserDraw(
1980
- (n, c) => {
1981
- D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, c.drawCustomEntity(D), c.drawLine(D.center, n);
2082
+ (n, m) => {
2083
+ D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, m.drawCustomEntity(D), m.drawLine(D.center, n);
1982
2084
  }
1983
2085
  );
1984
- }, t = (n) => {
2086
+ }, e = (n) => {
1985
2087
  if (F === "default") {
1986
- if (n === x.kOk) {
2088
+ if (n === T.kOk) {
1987
2089
  if (B === 0)
1988
2090
  E.setMessage(`
1989
- \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), e();
2091
+ \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), t();
1990
2092
  else if (B === 1)
1991
- return i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
2093
+ return r.GetCurrentMxCAD().DrawEntity(new G(D.center.x, D.center.y, 0, D.radius)), !0;
1992
2094
  B++;
1993
2095
  }
1994
- n === x.kKeyWord && E.isKeyWordPicked("D") && (A = !1, e(), E.setMessage(`
2096
+ n === T.kKeyWord && E.isKeyWordPicked("D") && (A = !1, t(), E.setMessage(`
1995
2097
  \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
1996
2098
  }
1997
2099
  };
1998
- let r = [];
2100
+ let i = [];
1999
2101
  const s = (n) => {
2000
2102
  if (F === "3P" && (E.setMessage(`
2001
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === x.kOk)) {
2002
- if (B === 0 && (r.push(E.value()), E.setUserDraw((c, y) => {
2003
- y.drawLine(r[0], c);
2103
+ \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);
2004
2106
  }), E.setMessage(`
2005
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (r.push(E.value()), E.setUserDraw((c, y) => {
2006
- const [b, l] = r, m = c;
2007
- D.center = mD([
2008
- b,
2009
- l,
2010
- m
2011
- ]), D.radius = D.center.distanceTo(b), y.drawCustomEntity(D);
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,
2111
+ p,
2112
+ d
2113
+ ]), D.radius = D.center.distanceTo(x), w.drawCustomEntity(D);
2012
2114
  }), E.setMessage(`
2013
2115
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), B === 2)
2014
- return r.push(E.value()), D.center = mD(r), D.radius = D.center.distanceTo(r[0]), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
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;
2015
2117
  B++;
2016
2118
  }
2017
2119
  };
2018
2120
  let o;
2019
- const u = (n, c) => {
2020
- new THREE.Line3(n, c).getCenter(D.center), D.radius = c.distanceTo(n) / 2;
2021
- }, p = (n) => {
2121
+ const a = (n, m) => {
2122
+ new THREE.Line3(n, m).getCenter(D.center), D.radius = m.distanceTo(n) / 2;
2123
+ }, l = (n) => {
2022
2124
  if (F === "2P" && (E.setMessage(`
2023
- \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === x.kOk)) {
2024
- if (B === 0 && (o = E.value(), E.setUserDraw((c, y) => {
2025
- u(o, c), y.drawCustomEntity(D), y.drawLine(o, c);
2125
+ \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === T.kOk)) {
2126
+ if (B === 0 && (o = E.value(), E.setUserDraw((m, w) => {
2127
+ a(o, m), w.drawCustomEntity(D), w.drawLine(o, m);
2026
2128
  }), E.setMessage(`
2027
2129
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), B === 1)
2028
- return u(o, E.value()), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
2130
+ return a(o, E.value()), r.GetCurrentMxCAD().DrawEntity(new G(D.center.x, D.center.y, 0, D.radius)), !0;
2029
2131
  B++;
2030
2132
  }
2031
- }, d = (n) => {
2133
+ }, c = (n) => {
2032
2134
  if (F === "T") {
2033
2135
  if (E.setMessage(`
2034
- \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === x.kOk) {
2136
+ \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === T.kOk) {
2035
2137
  if (B === 0) {
2036
- const c = E.value();
2037
- console.log(c), h.getCurrentDraw();
2138
+ const m = E.value();
2139
+ console.log(m), h.getCurrentDraw();
2038
2140
  }
2039
2141
  B++;
2040
2142
  }
@@ -2046,79 +2148,79 @@ function UD() {
2046
2148
  \u6307\u5B9A\u5706\u7684\u5706\u5FC3\u6216[\u4E09\u70B9(3P)/\u4E24\u70B9(2P)/\u5207\u70B9\u3001\u5207\u70B9\u3001\u534A\u5F84(T)]:`
2047
2149
  ), E.setKeyWords("3P 2P T"), E.goWhile(
2048
2150
  (n) => {
2049
- if (n === x.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), t(n))
2151
+ if (n === T.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), e(n))
2050
2152
  return { exit: !0 };
2051
2153
  if (s(n))
2052
2154
  return { exit: !0 };
2053
- if (p(n))
2155
+ if (l(n))
2054
2156
  return { exit: !0 };
2055
- if (d(n))
2157
+ if (c(n))
2056
2158
  return { exit: !0 };
2057
2159
  },
2058
2160
  (n) => {
2059
- n === x.kCancel && i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius));
2161
+ n === T.kCancel && r.GetCurrentMxCAD().DrawEntity(new G(D.center.x, D.center.y, 0, D.radius));
2060
2162
  }
2061
2163
  );
2062
2164
  }
2063
2165
  h.on("init", () => {
2064
- h.addCommand("Mx_Circle", UD);
2166
+ h.addCommand("Mx_Circle", KD);
2065
2167
  });
2066
- const pD = () => wD.state.MxFun.stopRunCommand();
2067
- function AD(E, D, C, B) {
2168
+ const yD = () => xD.state.MxFun.stopRunCommand();
2169
+ function iD(E, D, C, B) {
2068
2170
  const F = E - C, A = D - B;
2069
- let e = 0;
2070
- return F == 0 ? e = Math.PI / 2 : e = Math.atan(Math.abs(A / F)), F < 0 && A >= 0 ? e = Math.PI - e : F < 0 && A < 0 ? e = Math.PI + e : F >= 0 && A < 0 && (e = Math.PI * 2 - e), e;
2171
+ let t = 0;
2172
+ 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;
2071
2173
  }
2072
- const k = (E, D, C) => {
2174
+ const L = (E, D, C) => {
2073
2175
  const B = () => {
2074
2176
  E.go((F) => {
2075
- if (F === x.kKeyWord && C() && B(), F === x.kOk && D() && B(), F === x.kNone && B(), F === x.kCancel)
2177
+ if (F === T.kKeyWord && C() && B(), F === T.kOk && D() && B(), F === T.kNone && B(), F === T.kCancel)
2076
2178
  return { exit: !0 };
2077
2179
  });
2078
2180
  };
2079
2181
  return B;
2080
2182
  };
2081
- async function zD() {
2082
- const E = new T();
2083
- let D = new Z(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2183
+ async function HD() {
2184
+ const E = new S();
2185
+ let D = new X(), C = r.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2084
2186
  E.setMessage(`
2085
2187
  \u6307\u5B9A\u7B2C\u4E00\u70B9:`);
2086
2188
  let F = await E.go();
2087
2189
  if (!F)
2088
2190
  return;
2089
- E.setUserDraw((e, t) => {
2090
- t.setColor(C), B.forEach((r) => {
2091
- r.color = C, t.drawCustomEntity(r);
2092
- }), t.drawLine(F, e);
2191
+ E.setUserDraw((t, e) => {
2192
+ e.setColor(C), B.forEach((i) => {
2193
+ i.color = C, e.drawCustomEntity(i);
2194
+ }), e.drawLine(F, t);
2093
2195
  });
2094
2196
  const A = () => {
2095
2197
  E.setMessage(`
2096
2198
  \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), B.length > 1 ? E.setKeyWords("[\u9000\u51FA(E)/\u95ED\u5408(C)/\u653E\u5F03(U)]") : E.setKeyWords("[\u9000\u51FA(E)/\u653E\u5F03(U)]");
2097
2199
  };
2098
2200
  A(), E.goWhile(
2099
- (e) => {
2100
- if (e === x.kOk && (D = new Z(), L.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), e === x.kKeyWord) {
2201
+ (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) {
2101
2203
  if (E.isKeyWordPicked("E"))
2102
- pD();
2204
+ yD();
2103
2205
  else if (E.isKeyWordPicked("C")) {
2104
- const t = new Z();
2105
- return t.pt1 = F.clone(), t.pt2 = B[0].pt1.clone(), L.use(t), B.push(t), F = t.pt2.clone(), pD(), { exit: !0 };
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 };
2106
2208
  } else if (E.isKeyWordPicked("U")) {
2107
- const t = B.pop();
2108
- t && (F = t.pt1);
2209
+ const e = B.pop();
2210
+ e && (F = e.pt1);
2109
2211
  }
2110
2212
  }
2111
2213
  },
2112
- (e) => (e != x.kCancel && B.forEach((t) => {
2113
- i.GetCurrentMxCAD().DrawEntity(new Y(t.pt1.x, t.pt1.y, 0, t.pt2.x, t.pt2.y, 0));
2214
+ (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));
2114
2216
  }), { exit: !0 })
2115
2217
  );
2116
2218
  }
2117
2219
  h.on("init", () => {
2118
- h.addCommand("Mx_Line", zD);
2220
+ h.addCommand("Mx_Line", HD);
2119
2221
  });
2120
- async function dC() {
2121
- const E = new T();
2222
+ async function yC() {
2223
+ const E = new S();
2122
2224
  E.setMessage(`
2123
2225
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
2124
2226
  let D = await E.go();
@@ -2129,7 +2231,7 @@ async function dC() {
2129
2231
  if (C.length <= 0)
2130
2232
  return;
2131
2233
  let B = h.screenCoordLong2Doc(50);
2132
- C = _.b64Encode(C);
2234
+ C = J.b64Encode(C);
2133
2235
  const F = {
2134
2236
  postx: D.x,
2135
2237
  posty: D.y,
@@ -2138,79 +2240,79 @@ async function dC() {
2138
2240
  };
2139
2241
  h.call("Mx_MText", F);
2140
2242
  }
2141
- async function VD() {
2142
- const E = new T();
2143
- let D = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2144
- const C = new QD();
2145
- L.use(C), C.color = D, E.setMessage(`
2243
+ async function ND() {
2244
+ const E = new S();
2245
+ let D = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2246
+ const C = new DC();
2247
+ v.use(C), C.color = D, E.setMessage(`
2146
2248
  \u6307\u5B9A\u8D77\u70B9:`);
2147
2249
  let B;
2148
2250
  E.setUserDraw((F, A) => {
2149
2251
  A.setColor(D), A.drawCustomEntity(C), B && A.drawLine(B, F);
2150
2252
  }), E.goWhile(
2151
2253
  (F) => {
2152
- if (F === x.kOk) {
2254
+ if (F === T.kOk) {
2153
2255
  const A = E.value();
2154
2256
  C.points.push(E.value()), B = A, E.setMessage(`
2155
2257
  \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), E.setKeyWords("[\u5706\u5F27(A)/\u5BBD\u5EA6(W)]");
2156
2258
  } else
2157
- F === x.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
2259
+ F === T.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
2158
2260
  },
2159
2261
  (F) => {
2160
- if (F === x.kCancel) {
2161
- let A = i.GetCurrentMxCAD(), e = new X();
2162
- for (let t = 0; t < C.points.length; t++)
2163
- e.addVertexAt(C.points[t]);
2164
- A.DrawEntity(e);
2262
+ if (F === T.kCancel) {
2263
+ let A = r.GetCurrentMxCAD(), t = new BD();
2264
+ for (let e = 0; e < C.points.length; e++)
2265
+ t.addVertexAt(C.points[e]);
2266
+ A.DrawEntity(t);
2165
2267
  }
2166
2268
  }
2167
2269
  );
2168
2270
  }
2169
2271
  h.on("init", () => {
2170
- h.addCommand("Mx_Pline", VD);
2272
+ h.addCommand("Mx_Pline", ND);
2171
2273
  });
2172
- async function KD() {
2173
- const E = new T();
2274
+ async function _D() {
2275
+ const E = new S();
2174
2276
  E.setMessage(`
2175
2277
  \u6307\u5B9A\u4E00\u70B9:`);
2176
- let D = await E.go(), C = new O();
2278
+ let D = await E.go(), C = new G();
2177
2279
  C.setCenter(D.x, D.y, D.z);
2178
- let B = 5, F = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2179
- E.setUserDraw((A, e) => {
2180
- e.setColor(F), C.radius = D.distanceTo(A);
2181
- let t = C.getEndParam().val, s = C.getDistAtParam(t).val / B, o = 0, u = new THREE.Vector3(), p = new THREE.Vector3();
2182
- for (let d = 0; d < B; d++) {
2280
+ let B = 5, F = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2281
+ E.setUserDraw((A, t) => {
2282
+ 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();
2284
+ for (let c = 0; c < B; c++) {
2183
2285
  let n = C.getPointAtDist(o).val;
2184
- o += s, d > 0 ? e.drawMcDbLine(n.x, n.y, n.z, u.x, u.y, u.z) : p = new THREE.Vector3(n.x, n.y, n.z), d == B - 1 && e.drawMcDbLine(n.x, n.y, n.z, p.x, p.y, p.z), u = new THREE.Vector3(n.x, n.y, n.z);
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);
2185
2287
  }
2186
2288
  }), E.setMessage(`
2187
2289
  \u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
2188
2290
  }
2189
- h.addCommand("Mx_Polygon", KD);
2190
- function hC(E, D, C) {
2191
- const B = E.x, F = D.x, A = C.x, e = E.y, t = D.y, r = C.y, s = B - F, o = e - t, u = B - A, p = e - r, d = (B * B - F * F + (e * e - t * t)) / 2, n = (B * B - A * A + (e * e - r * r)) / 2, c = o * u - s * p, y = -(p * d - o * n) / c, b = -(s * n - u * d) / c;
2192
- return new THREE.Vector3(y, b, 0);
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);
2193
2295
  }
2194
- function wC(E, D) {
2296
+ function gC(E, D) {
2195
2297
  const C = E.x, B = E.y, F = D.x, A = D.y;
2196
2298
  return Math.sqrt((C - F) * (C - F) + (B - A) * (B - A));
2197
2299
  }
2198
- function yC(E, D, C) {
2300
+ function xC(E, D, C) {
2199
2301
  let B;
2200
2302
  E < C ? B = C - E : B = C - E + 360;
2201
2303
  let F;
2202
2304
  return E < D ? F = D - E : F = D - E + 360, F > B;
2203
2305
  }
2204
- function eD(E, D, C) {
2205
- const B = E.x, F = D.x, A = E.y, e = D.y;
2206
- let t, r, s;
2207
- return t = (A - e) / 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, t < -0.05 && (s = 360 - s), {
2208
- sin: t,
2209
- cos: r,
2306
+ function rD(E, D, C) {
2307
+ 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), {
2310
+ sin: e,
2311
+ cos: i,
2210
2312
  angle: s
2211
2313
  };
2212
2314
  }
2213
- class cD extends yD {
2315
+ class dD extends bD {
2214
2316
  constructor() {
2215
2317
  super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
2216
2318
  }
@@ -2218,24 +2320,24 @@ class cD extends yD {
2218
2320
  return "MxDbCircle";
2219
2321
  }
2220
2322
  create() {
2221
- return new cD();
2323
+ return new dD();
2222
2324
  }
2223
2325
  getArcBulge(D, C, B) {
2224
2326
  const F = D.distanceTo(C);
2225
- let t = 2 * new THREE.Line3(D, C).getCenter(
2327
+ let e = 2 * new THREE.Line3(D, C).getCenter(
2226
2328
  new THREE.Vector3()
2227
2329
  ).distanceTo(B) / F;
2228
- return t > 0.9999 && t < 1.0001 ? t = 1 : t < -0.9999 && t > -1.0001 ? t = -1 : Math.abs(t) < 1e-10 && (t = 0), t;
2330
+ return e > 0.9999 && e < 1.0001 ? e = 1 : e < -0.9999 && e > -1.0001 ? e = -1 : Math.abs(e) < 1e-10 && (e = 0), e;
2229
2331
  }
2230
2332
  getArcMidPoint(D, C, B, F, A) {
2231
- const e = D, t = B * Math.PI / 180;
2232
- let r = F * Math.PI / 180;
2333
+ const t = D, e = B * Math.PI / 180;
2334
+ let i = F * Math.PI / 180;
2233
2335
  const s = new THREE.Vector3(), o = new THREE.Vector3();
2234
- s.x = e.x + C * Math.cos(t), s.y = e.y + C * Math.sin(t), o.x = e.x + C * Math.cos(r), o.y = e.y + C * Math.sin(r);
2235
- const u = C;
2236
- (A ? B < F : B > F) && (r += Math.PI * 2);
2237
- const p = new THREE.Vector3();
2238
- return p.x = e.x + u * Math.cos((t + r) / 2), p.y = e.y + u * Math.sin((t + r) / 2), [s, p, o, this.center];
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);
2339
+ 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];
2239
2341
  }
2240
2342
  getGripPoints() {
2241
2343
  return this.getArcMidPoint(
@@ -2254,130 +2356,130 @@ class cD extends yD {
2254
2356
  }
2255
2357
  upDatePoints(D, C, B) {
2256
2358
  D[C].add(B);
2257
- const [F, A, e] = D;
2258
- this.center = hC(F, e, A), this.radius = wC(A, this.center);
2259
- const t = eD(F, this.center, this.radius), r = eD(e, this.center, this.radius), s = eD(A, this.center, this.radius);
2260
- this.clockwise = yC(
2261
- r.angle,
2262
- t.angle,
2359
+ 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,
2364
+ e.angle,
2263
2365
  s.angle
2264
- ), this.startAngle = THREE.MathUtils.degToRad(t.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2366
+ ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(i.angle);
2265
2367
  }
2266
2368
  }
2267
- async function HD() {
2268
- let E = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2269
- const D = new T();
2369
+ async function qD() {
2370
+ let E = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2371
+ const D = new S();
2270
2372
  D.setMessage(`
2271
2373
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)]");
2272
- let C = new cD();
2273
- C.closed = !1, L.use(C);
2374
+ let C = new dD();
2375
+ C.closed = !1, v.use(C);
2274
2376
  let B, F, A;
2275
- const e = k(
2377
+ const t = L(
2276
2378
  D,
2277
2379
  () => {
2278
2380
  B = D.value(), D.setMessage(`
2279
- \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), D.setUserDraw((l, m) => {
2280
- m.setColor(E), m.drawLine(B, l);
2281
- }), c();
2381
+ \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), D.setUserDraw((p, d) => {
2382
+ d.setColor(E), d.drawLine(B, p);
2383
+ }), m();
2282
2384
  },
2283
2385
  () => {
2284
2386
  if (D.isKeyWordPicked("C")) {
2285
- const l = new J();
2286
- l.color = E, C.center = D.value(), l.center = D.value(), D.setMessage(`
2287
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), r();
2387
+ const p = new Q();
2388
+ p.color = E, C.center = D.value(), p.center = D.value(), D.setMessage(`
2389
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), i();
2288
2390
  } else
2289
2391
  return !0;
2290
2392
  }
2291
2393
  );
2292
- let t;
2293
- const r = k(
2394
+ let e;
2395
+ const i = L(
2294
2396
  D,
2295
2397
  () => {
2296
- t = D.value(), A = new J(), A.closed = !1, L.use(A), A.color = E, A.center = t, C.center = t, D.setMessage(`
2297
- \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((l, m) => {
2298
- m.drawCustomEntity(A), m.setColor(E), m.drawLine(t, l);
2299
- }), u();
2398
+ e = D.value(), A = new Q(), A.closed = !1, v.use(A), A.color = E, A.center = e, C.center = e, D.setMessage(`
2399
+ \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((p, d) => {
2400
+ d.drawCustomEntity(A), d.setColor(E), d.drawLine(e, p);
2401
+ }), a();
2300
2402
  },
2301
2403
  () => {
2302
2404
  }
2303
2405
  );
2304
2406
  let s, o;
2305
- const u = k(
2407
+ const a = L(
2306
2408
  D,
2307
2409
  () => {
2308
2410
  s = D.value(), A.endPoint = s, D.setMessage(
2309
2411
  `
2310
2412
  \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)]:`
2311
- ), D.setKeyWords("A L R"), o = new Z(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((l, m) => {
2312
- A.startPoint = l, o.pt2 = l, m.drawCustomEntity(A), m.drawCustomEntity(o);
2313
- }), d();
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) => {
2414
+ A.startPoint = p, o.pt2 = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2415
+ }), c();
2314
2416
  },
2315
2417
  () => {
2316
2418
  }
2317
2419
  );
2318
- let p;
2319
- const d = k(
2420
+ let l;
2421
+ const c = L(
2320
2422
  D,
2321
2423
  () => {
2322
- p = D.value(), A.startPoint = p, A.endPoint = s, y.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
2424
+ l = D.value(), A.startPoint = l, A.endPoint = s, w.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
2323
2425
  },
2324
2426
  () => {
2325
2427
  if (D.isKeyWordPicked("A"))
2326
2428
  return D.setMessage(
2327
2429
  `
2328
2430
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2329
- ), D.setKeyWords("R"), D.setUserDraw((l, m) => {
2330
- A.startPoint = l, m.drawCustomEntity(A), m.drawCustomEntity(o);
2431
+ ), D.setKeyWords("R"), D.setUserDraw((p, d) => {
2432
+ A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2331
2433
  }), !0;
2332
2434
  if (D.isKeyWordPicked("L"))
2333
2435
  return D.setMessage(
2334
2436
  `
2335
2437
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2336
- ), D.setKeyWords("R"), D.setUserDraw((l, m) => {
2337
- A.startPoint = l, m.drawCustomEntity(A), m.drawCustomEntity(o);
2438
+ ), D.setKeyWords("R"), D.setUserDraw((p, d) => {
2439
+ A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2338
2440
  }), !0;
2339
2441
  if (D.isKeyWordPicked("R"))
2340
2442
  D.setMessage(
2341
2443
  `
2342
2444
  \u6307\u5B9A\u5706\u5F27\u7684\u534A\u5F84${A.radius ? "<" + A.radius + ">" : ""}:`
2343
- ), D.setKeyWords(""), D.setUserDraw((l, m) => {
2344
- m.drawLine(l, A.center), A.startPoint = l, m.drawCustomEntity(A);
2345
- }), u();
2445
+ ), D.setKeyWords(""), D.setUserDraw((p, d) => {
2446
+ d.drawLine(p, A.center), A.startPoint = p, d.drawCustomEntity(A);
2447
+ }), a();
2346
2448
  else
2347
2449
  return !0;
2348
2450
  }
2349
2451
  );
2350
2452
  let n;
2351
- const c = k(
2453
+ const m = L(
2352
2454
  D,
2353
2455
  () => {
2354
2456
  n = D.value(), D.setMessage(`
2355
- \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new XD(), F.color = E, F.autoClockwise = !0, F.closed = !1, L.use(F), D.setUserDraw((l, m) => {
2356
- F.point1 = B, F.point3 = n, F.point2 = l, m.drawCustomEntity(F);
2357
- }), b();
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) => {
2458
+ F.point1 = B, F.point3 = n, F.point2 = p, d.drawCustomEntity(F);
2459
+ }), x();
2358
2460
  },
2359
2461
  () => {
2360
2462
  if (D.isKeyWordPicked("C"))
2361
- A = new J(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2362
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((l, m) => {
2363
- A.startPoint = B, m.drawLine(l, A.startPoint);
2364
- }), r();
2463
+ A = new Q(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2464
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
2465
+ A.startPoint = B, d.drawLine(p, A.startPoint);
2466
+ }), i();
2365
2467
  else if (D.isKeyWordPicked("E"))
2366
- A = new J(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2367
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((l, m) => {
2368
- A.startPoint = B, m.drawLine(l, A.startPoint);
2369
- }), r();
2468
+ A = new Q(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2469
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
2470
+ A.startPoint = B, d.drawLine(p, A.startPoint);
2471
+ }), i();
2370
2472
  else
2371
2473
  return !0;
2372
2474
  }
2373
2475
  );
2374
- let y = i.GetCurrentMxCAD();
2375
- const b = k(
2476
+ let w = r.GetCurrentMxCAD();
2477
+ const x = L(
2376
2478
  D,
2377
2479
  () => {
2378
2480
  F.point1 = B, F.point2 = D.value(), F.point3 = n;
2379
- let l = new DD();
2380
- l.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), y.DrawEntity(l);
2481
+ let p = new ED();
2482
+ p.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), w.DrawEntity(p);
2381
2483
  },
2382
2484
  () => {
2383
2485
  if (D.isKeyWordPicked("C"))
@@ -2388,165 +2490,284 @@ async function HD() {
2388
2490
  return !0;
2389
2491
  }
2390
2492
  );
2391
- e();
2493
+ t();
2392
2494
  }
2393
2495
  h.on("init", () => {
2394
- h.addCommand("Mx_Arc", HD);
2496
+ h.addCommand("Mx_Arc", qD);
2395
2497
  });
2396
- function ND() {
2397
- const E = new T(), D = new DC();
2398
- D.closed = !1, L.use(D), E.setMessage(`
2498
+ function ZD() {
2499
+ const E = new S(), D = new BC();
2500
+ D.closed = !1, v.use(D), E.setMessage(`
2399
2501
  \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
2400
2502
  let C, B = new THREE.Vector3();
2401
- k(
2503
+ L(
2402
2504
  E,
2403
2505
  () => {
2404
2506
  C = E.value(), E.setUserDraw((s, o) => {
2405
- const u = new THREE.Line3(C, s);
2406
- u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = AD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
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);
2407
2509
  }), E.setMessage(`
2408
2510
  \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
2409
2511
  },
2410
2512
  () => {
2411
2513
  }
2412
2514
  )();
2413
- const A = k(
2515
+ const A = L(
2414
2516
  E,
2415
2517
  () => {
2416
2518
  E.setUserDraw((s, o) => {
2417
2519
  D.yRadius = B.distanceTo(s), o.drawLine(B, s), o.drawCustomEntity(D);
2418
2520
  }), E.setMessage(`
2419
- \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), e();
2521
+ \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), t();
2420
2522
  },
2421
2523
  () => {
2422
2524
  }
2423
- ), e = k(
2525
+ ), t = L(
2424
2526
  E,
2425
2527
  () => {
2426
2528
  E.setMessage(`
2427
2529
  \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, o) => {
2428
- D.startAngle = AD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2429
- }), t();
2530
+ D.startAngle = iD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2531
+ }), e();
2430
2532
  },
2431
2533
  () => {
2432
2534
  }
2433
- ), t = k(
2535
+ ), e = L(
2434
2536
  E,
2435
2537
  () => {
2436
2538
  E.setUserDraw((s, o) => {
2437
- D.endAngle = AD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2539
+ D.endAngle = iD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2438
2540
  }), E.setMessage(`
2439
- \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), r();
2541
+ \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), i();
2440
2542
  },
2441
2543
  () => {
2442
2544
  }
2443
- ), r = k(
2545
+ ), i = L(
2444
2546
  E,
2445
2547
  () => {
2446
- let s = new w(D.xRadius, 0, 0);
2447
- s.rotateBy(D.rotation, w.kZAxis), i.GetCurrentMxCAD().DrawEntity(new uD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2548
+ 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));
2448
2550
  },
2449
2551
  () => {
2450
2552
  }
2451
2553
  );
2452
2554
  }
2453
- function gC() {
2454
- const E = new T(), D = new CC(), C = new BC();
2455
- let B = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2555
+ function bC() {
2556
+ const E = new S(), D = new EC(), C = new FC();
2557
+ let B = r.GetCurrentDatabase().GetCurrentlyDrawColor();
2456
2558
  C.setColor(B), E.setMessage(`
2457
2559
  \u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2458
2560
  C.point1 = E.value(), D.setDraw((F) => {
2459
2561
  C.point2 = F, D.drawCustomEntity(C);
2460
2562
  }), E.setUserDraw(D), E.setMessage(`
2461
2563
  \u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2462
- i.GetCurrentMxCAD().DrawEntity(new uD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2564
+ r.GetCurrentMxCAD().DrawEntity(new mD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2463
2565
  });
2464
2566
  });
2465
2567
  }
2466
2568
  h.on("init", () => {
2467
- h.addCommand("Mx_EllipseArc", ND), h.addCommand("Mx_Ellipse", gC);
2569
+ h.addCommand("Mx_EllipseArc", ZD), h.addCommand("Mx_Ellipse", bC);
2468
2570
  });
2469
- async function qD() {
2470
- let E = $.getCurrentSelect();
2571
+ async function $D() {
2572
+ let E = z.getCurrentSelect();
2471
2573
  if (E.length > 0) {
2472
2574
  E.forEach((C) => {
2473
2575
  C.erase();
2474
2576
  });
2475
2577
  return;
2476
2578
  }
2477
- let D = new BD();
2579
+ let D = new q();
2478
2580
  !await D.userSelect(`
2479
2581
  \u9009\u62E9\u5220\u9664\u5BF9\u8C61`) || D.forEach((C) => {
2480
2582
  C.erase();
2481
2583
  });
2482
2584
  }
2483
- async function bC() {
2585
+ function tD(E) {
2586
+ let D, C;
2587
+ if (E.forEach((B) => {
2588
+ let F = B.getMcDbEntity();
2589
+ if (F == null)
2590
+ return;
2591
+ 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)));
2593
+ }), D && C)
2594
+ return { minPt: D, maxPt: C };
2595
+ }
2596
+ async function fC() {
2597
+ let E;
2598
+ for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2599
+ let t = new q();
2600
+ if (!await t.userSelect(`
2601
+ \u9009\u62E9\u590D\u5236\u5BF9\u8C61`) || (E = t.getIds(), E.length == 0))
2602
+ return;
2603
+ break;
2604
+ }
2605
+ let D, C;
2606
+ if (E.length >= 10) {
2607
+ let t = tD(E);
2608
+ t && (D = t.minPt, C = t.maxPt);
2609
+ }
2610
+ let B = new Y();
2611
+ B.setMessage("\u6307\u5B9A\u57FA\u70B9");
2612
+ let F = await B.go();
2613
+ if (!F)
2614
+ return;
2615
+ B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((t, e) => {
2616
+ 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);
2619
+ }
2620
+ for (let i = 0; i < E.length && i < 10; i++) {
2621
+ let s = E[i].clone();
2622
+ !s || (s.Move(F, t), e.drawMcDbEntity(s));
2623
+ }
2624
+ });
2625
+ let A = await B.go();
2626
+ if (!!A)
2627
+ for (let t = 0; t < E.length; t++) {
2628
+ let e = E[t].clone();
2629
+ !e || (e.Move(F, A), r.GetCurrentMxCAD().DrawEntity(e));
2630
+ }
2631
+ }
2632
+ async function MC() {
2484
2633
  let E;
2485
- for (; E = $.getCurrentSelect(), !(E.length > 0); ) {
2486
- let F = new BD();
2487
- if (!await F.userSelect(`
2488
- \u9009\u62E9\u590D\u5236\u5BF9\u8C61`) || (E = F.getIds(), E.length == 0))
2634
+ for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2635
+ let t = new q();
2636
+ if (!await t.userSelect(`
2637
+ \u9009\u62E9\u79FB\u52A8\u5BF9\u8C61`) || (E = t.getIds(), E.length == 0))
2489
2638
  return;
2490
2639
  break;
2491
2640
  }
2492
- let D = new T();
2493
- D.setMessage("\u6307\u5B9A\u57FA\u70B9");
2494
- let C = await D.go();
2495
- if (!C)
2641
+ let D, C;
2642
+ if (E.length >= 10) {
2643
+ let t = tD(E);
2644
+ t && (D = t.minPt, C = t.maxPt);
2645
+ }
2646
+ let B = new Y();
2647
+ B.setMessage("\u6307\u5B9A\u57FA\u70B9");
2648
+ let F = await B.go();
2649
+ if (!F)
2496
2650
  return;
2497
- D.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), D.setBasePt(C), D.setUseBasePt(!0), D.setUserDraw((F, A) => {
2498
- for (let e = 0; e < E.length && e < 10; e++) {
2499
- let t = E[e].clone();
2500
- !t || (t.Move(new a(C), new a(F)), A.drawMcDbEntity(t));
2651
+ B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((t, e) => {
2652
+ 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);
2655
+ }
2656
+ for (let i = 0; i < E.length && i < 10; i++) {
2657
+ let s = E[i].clone();
2658
+ !s || (s.Move(F, t), e.drawMcDbEntity(s));
2501
2659
  }
2502
2660
  });
2503
- let B = await D.go();
2504
- if (!!B)
2505
- for (let F = 0; F < E.length; F++) {
2506
- let A = E[F].clone();
2507
- !A || (A.Move(new a(C), new a(B)), i.GetCurrentMxCAD().DrawEntity(A));
2661
+ let A = await B.go();
2662
+ if (!!A)
2663
+ for (let t = 0; t < E.length; t++) {
2664
+ let e = E[t].getMcDbObject();
2665
+ !e || e.Move(F, A);
2508
2666
  }
2509
2667
  }
2510
- async function xC() {
2668
+ async function PC() {
2511
2669
  let E;
2512
- for (; E = $.getCurrentSelect(), !(E.length > 0); ) {
2513
- let F = new BD();
2514
- if (!await F.userSelect(`
2515
- \u9009\u62E9\u79FB\u52A8\u5BF9\u8C61`) || (E = F.getIds(), E.length == 0))
2670
+ for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2671
+ let l = new q();
2672
+ if (!await l.userSelect(`
2673
+ \u9009\u62E9\u65CB\u8F6C\u5BF9\u8C61`) || (E = l.getIds(), E.length == 0))
2516
2674
  return;
2517
2675
  break;
2518
2676
  }
2519
- let D = new T();
2520
- D.setMessage("\u6307\u5B9A\u57FA\u70B9");
2521
- let C = await D.go();
2522
- if (!C)
2677
+ let D, C, B = tD(E);
2678
+ B && (D = B.minPt, C = B.maxPt);
2679
+ let F = new Y();
2680
+ F.setMessage("\u6307\u5B9A\u57FA\u70B9");
2681
+ let A = await F.go();
2682
+ if (A == null)
2523
2683
  return;
2524
- D.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), D.setBasePt(C), D.setUseBasePt(!0), D.setUserDraw((F, A) => {
2525
- for (let e = 0; e < E.length && e < 10; e++) {
2526
- let t = E[e].clone();
2527
- !t || (t.Move(new a(C), new a(F)), A.drawMcDbEntity(t));
2684
+ 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());
2689
+ }
2690
+ m = r.GetCurrentMxCAD().docCoord2Cad(m), p.setToRotation(x, y.kZAxis, m);
2691
+ for (let d = 0; d < E.length && d < 10; d++) {
2692
+ let f = E[d].clone();
2693
+ !f || (f.TransformBy(p), c.drawMcDbEntity(f));
2528
2694
  }
2529
2695
  });
2530
- let B = await D.go();
2531
- if (!!B)
2532
- for (let F = 0; F < E.length; F++) {
2533
- let A = E[F].getMcDbObject();
2534
- !A || A.Move(new a(C), new a(B));
2696
+ let t = await F.go();
2697
+ if (!t)
2698
+ 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);
2701
+ for (let l = 0; l < E.length; l++) {
2702
+ let c = E[l].getMcDbObject();
2703
+ !c || c.TransformBy(a);
2704
+ }
2705
+ }
2706
+ async function TC() {
2707
+ let E;
2708
+ for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
2709
+ let m = new q();
2710
+ if (!await m.userSelect(`
2711
+ \u9009\u62E9\u7F29\u653E\u5BF9\u8C61`) || (E = m.getIds(), E.length == 0))
2712
+ return;
2713
+ break;
2714
+ }
2715
+ let D, C, B = tD(E);
2716
+ if (!B)
2717
+ return;
2718
+ D = B.minPt, C = B.maxPt;
2719
+ let F = C.x - D.x, A = C.y - D.y, t = (F + A) / 3;
2720
+ t < 1e-5 && (t = 1);
2721
+ let e = new Y();
2722
+ e.setMessage("\u6307\u5B9A\u57FA\u70B9");
2723
+ let i = await e.go();
2724
+ if (i == null)
2725
+ 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);
2728
+ if (d < 1e-5)
2729
+ 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());
2535
2736
  }
2737
+ p = r.GetCurrentMxCAD().docCoord2Cad(p), b.setToScaling(f, p);
2738
+ for (let g = 0; g < E.length && g < 10; g++) {
2739
+ let M = E[g].clone();
2740
+ !M || (M.TransformBy(b), w.drawMcDbEntity(M));
2741
+ }
2742
+ });
2743
+ let s = await e.go();
2744
+ if (!s)
2745
+ return;
2746
+ let o = s, a = i, l = o.distanceTo(a);
2747
+ if (l < 1e-5)
2748
+ return;
2749
+ let c = l / t;
2750
+ c > 1e5 && (c = 1e5);
2751
+ let n = new I();
2752
+ a = r.GetCurrentMxCAD().docCoord2Cad(a), n.setToScaling(c, a);
2753
+ for (let m = 0; m < E.length; m++) {
2754
+ let w = E[m].getMcDbObject();
2755
+ !w || w.TransformBy(n);
2756
+ }
2536
2757
  }
2537
2758
  h.on("init", () => {
2538
- h.addCommand("Mx_Erase", qD), h.addCommand("Mx_Copy", bC), h.addCommand("Mx_Move", xC);
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);
2539
2760
  });
2540
- const fC = async (E, D, C) => {
2761
+ const kC = async (E, D, C) => {
2541
2762
  const { locateFile: B } = C, F = B(E + ".js");
2542
- return await ID(F), await globalThis[D](C);
2763
+ return await UD(F), await globalThis[D](C);
2543
2764
  };
2544
- function MC(E) {
2765
+ function RC(E) {
2545
2766
  return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
2546
2767
  }
2547
- function TC(E, D) {
2768
+ function SC(E, D) {
2548
2769
  const C = () => requestAnimationFrame(D);
2549
- let B = MC(C);
2770
+ let B = RC(C);
2550
2771
  if (B) {
2551
2772
  B.observe(E);
2552
2773
  return;
@@ -2556,7 +2777,7 @@ function TC(E, D) {
2556
2777
  return;
2557
2778
  }
2558
2779
  }
2559
- function kC(E, D) {
2780
+ function LC(E, D) {
2560
2781
  let C = null;
2561
2782
  return function(...B) {
2562
2783
  C || (C = setTimeout(() => {
@@ -2564,52 +2785,52 @@ function kC(E, D) {
2564
2785
  }, D));
2565
2786
  };
2566
2787
  }
2567
- class H {
2788
+ class N {
2568
2789
  static onloadWasmMxDraw3dModel;
2569
2790
  canvas;
2570
2791
  constructor(D) {
2571
2792
  const C = () => {
2572
- const u = this.canvas.parentElement?.clientWidth || window.innerWidth, p = this.canvas.parentElement?.clientHeight || window.innerHeight;
2573
- let d = Math.min(u, window.screen.availWidth), n = Math.min(p, window.screen.availHeight);
2574
- d = Math.max(A, d), n = Math.max(e, n), this.canvas.style.width = d + 1 + "px", this.canvas.style.height = n + "px";
2575
- const c = window.devicePixelRatio || 1;
2576
- this.canvas.width = d * c, this.canvas.height = n * c;
2577
- }, B = kC(C, 50), {
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);
2795
+ c = Math.max(A, c), n = Math.max(t, n), this.canvas.style.width = c + 1 + "px", this.canvas.style.height = n + "px";
2796
+ const m = window.devicePixelRatio || 1;
2797
+ this.canvas.width = c * m, this.canvas.height = n * m;
2798
+ }, B = LC(C, 50), {
2578
2799
  canvas: F,
2579
2800
  minWidth: A = 300,
2580
- minHeight: e = 300,
2581
- updateCanvasSize: t = B,
2582
- ...r
2801
+ minHeight: t = 300,
2802
+ updateCanvasSize: e = B,
2803
+ ...i
2583
2804
  } = D;
2584
2805
  let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
2585
- o == null && (o = s.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = s, this.ctx = o, r.canvas = this.canvas;
2586
- for (let u in r)
2587
- this[u] = r[u];
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];
2588
2809
  if (this.canvas instanceof HTMLCanvasElement) {
2589
- const u = this.canvas.parentElement || document.body;
2590
- TC(u, t);
2810
+ const a = this.canvas.parentElement || document.body;
2811
+ SC(a, e);
2591
2812
  } else
2592
2813
  console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
2593
- window.onresize = C, C(), fC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2594
- H.onloadWasmMxDraw3dModel && H.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = t, this.open3DFile = (u) => {
2595
- const p = new FileReader();
2596
- p.onload = () => {
2597
- if (!!p.result && p.result instanceof ArrayBuffer) {
2598
- var d = new Uint8Array(p.result);
2599
- const n = this._malloc(d.length);
2600
- this.HEAPU8.set(d, n), this.openFromMemory(u.name, n, d.length, !0), this.displayGround(!0), this.canvas.focus();
2814
+ window.onresize = C, C(), kC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2815
+ N.onloadWasmMxDraw3dModel && N.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (a) => {
2816
+ const l = new FileReader();
2817
+ l.onload = () => {
2818
+ if (!!l.result && l.result instanceof ArrayBuffer) {
2819
+ var c = new Uint8Array(l.result);
2820
+ 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();
2601
2822
  }
2602
- }, p.readAsArrayBuffer(u);
2823
+ }, l.readAsArrayBuffer(a);
2603
2824
  };
2604
2825
  });
2605
2826
  }
2606
2827
  }
2607
- function PC(E, D) {
2828
+ function OC(E, D) {
2608
2829
  return new Promise(async (C, B) => {
2609
2830
  try {
2610
- E.locateFile || (E.locateFile = oC);
2611
- const F = new H(E);
2612
- H.onloadWasmMxDraw3dModel = () => {
2831
+ E.locateFile || (E.locateFile = uC);
2832
+ const F = new N(E);
2833
+ N.onloadWasmMxDraw3dModel = () => {
2613
2834
  C(F), D && D(F);
2614
2835
  };
2615
2836
  } catch (F) {
@@ -2617,137 +2838,139 @@ function PC(E, D) {
2617
2838
  }
2618
2839
  });
2619
2840
  }
2620
- const RC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2841
+ const IC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2621
2842
  __proto__: null,
2622
- b64Encode: gD,
2623
- b64Decode: bD,
2624
- saveAsFileDialog: xD,
2625
- downloadFile: fD,
2626
- downloadFileFromUrl: MD,
2627
- MxTools: _,
2628
- McGePoint3d: a,
2629
- McGeVector3d: w,
2630
- McGeMatrix3d: V,
2631
- McGeLongArray: FC,
2632
- McGeStringArray: TD,
2633
- McGePoint3dArray: AC,
2634
- getFilterImp: z,
2635
- McDrawResbuf: q,
2636
- MxCADUtilityClass: OD,
2637
- MxCADUtility: $,
2638
- MxCADSelectionSet: BD,
2639
- McRxObject: G,
2640
- McObjectIdType: f,
2641
- McObjectId: M,
2642
- McDbObject: v,
2843
+ b64Encode: fD,
2844
+ b64Decode: MD,
2845
+ saveAsFileDialog: PD,
2846
+ downloadFile: TD,
2847
+ downloadFileFromUrl: kD,
2848
+ MxTools: J,
2849
+ McGePoint3d: u,
2850
+ McGeVector3d: y,
2851
+ 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,
2862
+ McObjectIdType: k,
2863
+ McObjectId: R,
2864
+ McDbObject: j,
2643
2865
  get McDb() {
2644
- return tD;
2866
+ return sD;
2645
2867
  },
2646
- McCmColor: I,
2647
- McDbLayerTableRecord: iC,
2648
- McDbLayerTable: kD,
2649
- McDbLinetypeTable: PD,
2650
- McDbTextStyleTable: SD,
2651
- McDbDatabase: oD,
2652
- McDbBlockTableRecordIterator: RD,
2653
- McDbBlockTableRecord: CD,
2654
- McDbBlockTableIterator: LD,
2655
- McDbBlockTable: vD,
2656
- McDbEntity: j,
2657
- McDbCurve: N,
2658
- McDbLine: Y,
2659
- McDbText: iD,
2660
- McDbMText: Q,
2661
- McDbCircle: O,
2662
- McDbPolyline: X,
2663
- McDbBlockReference: rD,
2664
- McDbDimension: aD,
2665
- McDbAlignedDimension: sD,
2666
- McDbRotatedDimension: nD,
2667
- McDbArc: DD,
2668
- McDbEllipse: uD,
2669
- McObject: K,
2670
- McAppType: jD,
2671
- MxCppType: GD,
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,
2672
2894
  get MxCpp() {
2673
- return i;
2895
+ return r;
2674
2896
  },
2675
- loadMxCADassembly: WD,
2676
- createMxCad: cC,
2677
- drawText: mC,
2678
- drawCircle: UD,
2679
- drawLine: zD,
2680
- drawMText: dC,
2681
- drawPolyLine: VD,
2682
- drawPolygon: KD,
2683
- drawArc: HD,
2684
- drawEllipticalArc: ND,
2685
- mxErase: qD,
2686
- MxDraw3d: H,
2687
- loadMxCADassembly3d: PC
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
2688
2910
  }, Symbol.toStringTag, { value: "Module" }));
2689
2911
  export {
2690
- jD as McAppType,
2691
- I as McCmColor,
2692
- tD as McDb,
2693
- sD as McDbAlignedDimension,
2694
- DD as McDbArc,
2695
- rD as McDbBlockReference,
2696
- vD as McDbBlockTable,
2697
- LD as McDbBlockTableIterator,
2698
- CD as McDbBlockTableRecord,
2699
- RD as McDbBlockTableRecordIterator,
2700
- O as McDbCircle,
2701
- N as McDbCurve,
2702
- oD as McDbDatabase,
2703
- aD as McDbDimension,
2704
- uD as McDbEllipse,
2705
- j as McDbEntity,
2706
- kD as McDbLayerTable,
2707
- iC as McDbLayerTableRecord,
2708
- Y as McDbLine,
2709
- PD as McDbLinetypeTable,
2710
- Q as McDbMText,
2711
- v as McDbObject,
2712
- X as McDbPolyline,
2713
- nD as McDbRotatedDimension,
2714
- iD as McDbText,
2715
- SD as McDbTextStyleTable,
2716
- q as McDrawResbuf,
2717
- FC as McGeLongArray,
2718
- V as McGeMatrix3d,
2719
- a as McGePoint3d,
2720
- AC as McGePoint3dArray,
2721
- TD as McGeStringArray,
2722
- w as McGeVector3d,
2723
- K as McObject,
2724
- M as McObjectId,
2725
- f as McObjectIdType,
2726
- G as McRxObject,
2727
- BD as MxCADSelectionSet,
2728
- $ as MxCADUtility,
2729
- OD as MxCADUtilityClass,
2730
- i as MxCpp,
2731
- GD as MxCppType,
2732
- H as MxDraw3d,
2733
- _ as MxTools,
2734
- bD as b64Decode,
2735
- gD as b64Encode,
2736
- cC as createMxCad,
2737
- RC as default,
2738
- fD as downloadFile,
2739
- MD as downloadFileFromUrl,
2740
- HD as drawArc,
2741
- UD as drawCircle,
2742
- ND as drawEllipticalArc,
2743
- zD as drawLine,
2744
- dC as drawMText,
2745
- VD as drawPolyLine,
2746
- KD as drawPolygon,
2747
- mC as drawText,
2748
- z as getFilterImp,
2749
- WD as loadMxCADassembly,
2750
- PC as loadMxCADassembly3d,
2751
- qD as mxErase,
2752
- xD as saveAsFileDialog
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,
2933
+ 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,
2940
+ I as McGeMatrix3d,
2941
+ u as McGePoint3d,
2942
+ eC as McGePoint3dArray,
2943
+ RD as McGeStringArray,
2944
+ y as McGeVector3d,
2945
+ H as McObject,
2946
+ R as McObjectId,
2947
+ 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,
2956
+ 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
2753
2976
  };