Repository: lulianqi/FreeHttp Branch: master Commit: 51bd3d665887 Files: 168 Total size: 2.6 MB Directory structure: gitextract_sk9eg1ll/ ├── .dockerignore ├── .gitattributes ├── .gitignore ├── AutoTest/ │ ├── CsvFileHelper.cs │ ├── MyBytesHelper.cs │ ├── MyCommonTool.cs │ ├── MyExtensionMethods.cs │ ├── ParameterizationContent/ │ │ ├── CaseParameterizationContent.cs │ │ ├── ParameterizationContentEncodingType.cs │ │ └── ParameterizationContentHelper.cs │ ├── ParameterizationPick/ │ │ ├── ParameterPick.cs │ │ ├── ParameterPickHelper.cs │ │ └── ParameterPickType.cs │ └── RunTimeStaticData/ │ ├── ActuatorStaticDataCollection.cs │ ├── CaseRunTimeDataTypeEngine.cs │ ├── CaseStaticDataType.cs │ ├── IRunTimeDataSource.cs │ ├── IRunTimeStaticData.cs │ ├── MyStaticData/ │ │ ├── MyStaticDataIndex.cs │ │ ├── MyStaticDataList.cs │ │ ├── MyStaticDataLong.cs │ │ ├── MyStaticDataNowTime.cs │ │ ├── MyStaticDataRandomStr.cs │ │ ├── MyStaticDataSourceCsv.cs │ │ ├── MyStaticDataStrIndex.cs │ │ └── MyStaticDataValue.cs │ └── RunTimeStaticDataHelper.cs ├── FiddlerFreeHttp.cs ├── FiddlerHelper/ │ ├── FiddlerActuatorStaticDataCollectionController.cs │ ├── FiddlerHttpFilter.cs │ ├── FiddlerModificHttpRuleCollection.cs │ ├── FiddlerModificSettingInfo.cs │ ├── FiddlerRequsetChange.cs │ ├── FiddlerResponseChange.cs │ ├── FiddlerRuleGroup.cs │ ├── FiddlerSessionHelper.cs │ ├── IFiddlerHttpTamper.cs │ ├── TamperProtocalType.cs │ └── VersionControl/ │ └── FiddlerModificHttpRuleCollectionV1.cs ├── FiddlerSessionTamper.cs ├── FreeHttp.csproj ├── FreeHttp.sln ├── FreeHttpControl/ │ ├── ChangeEncodeForm.Designer.cs │ ├── ChangeEncodeForm.cs │ ├── ChangeEncodeForm.resx │ ├── ControlHelper/ │ │ ├── LoadBitmap.cs │ │ ├── LoadWindowService.cs │ │ ├── MarkControlService.cs │ │ └── MyControlHelper.cs │ ├── EditCookieForm.Designer.cs │ ├── EditCookieForm.cs │ ├── EditCookieForm.resx │ ├── EditKeyVaule.Designer.cs │ ├── EditKeyVaule.cs │ ├── EditKeyVaule.resx │ ├── EditParameterPickWindow.Designer.cs │ ├── EditParameterPickWindow.cs │ ├── EditParameterPickWindow.resx │ ├── EditSheetForm.Designer.cs │ ├── EditSheetForm.cs │ ├── EditSheetForm.resx │ ├── FreeHttpWindow.Designer.cs │ ├── FreeHttpWindow.cs │ ├── FreeHttpWindow.resx │ ├── FreeHttpWindowFunction.cs │ ├── GetRemoteRuleWindow.Designer.cs │ ├── GetRemoteRuleWindow.cs │ ├── GetRemoteRuleWindow.resx │ ├── HttpFilterWindow.Designer.cs │ ├── HttpFilterWindow.cs │ ├── HttpFilterWindow.resx │ ├── MyBaseInfoWindow.cs │ ├── MyBaseInfoWindow.resx │ ├── MyControl/ │ │ ├── AddParameterPickBox.Designer.cs │ │ ├── AddParameterPickBox.cs │ │ ├── AddParameterPickBox.resx │ │ ├── CBalloonBase.cs │ │ ├── CBalloonBase.resx │ │ ├── EditListView.Designer.cs │ │ ├── EditListView.cs │ │ ├── EditListView.resx │ │ ├── ListViewExtended.cs │ │ ├── MyEnableSwitch.Designer.cs │ │ ├── MyEnableSwitch.cs │ │ ├── MyEnableSwitch.resx │ │ ├── MyEnabledPictureButton.cs │ │ ├── MyListView.cs │ │ ├── MyListView.resx │ │ ├── MyPanel.cs │ │ ├── MySwitchPictureButton.cs │ │ ├── RawRequestEdit.Designer.cs │ │ ├── RawRequestEdit.cs │ │ ├── RawRequestEdit.resx │ │ ├── RawResponseEdit.cs │ │ ├── RawResponseEdit.designer.cs │ │ ├── RawResponseEdit.resx │ │ ├── TextBoxEditer.Designer.cs │ │ ├── TextBoxEditer.cs │ │ ├── TextBoxEditer.resx │ │ └── WatermakTextBox.cs │ ├── RemoveHead.Designer.cs │ ├── RemoveHead.cs │ ├── RemoveHead.resx │ ├── RuleInfoWindow.cs │ ├── RuleInfoWindow.designer.cs │ ├── RuleInfoWindow.resx │ ├── SaveShareRule.Designer.cs │ ├── SaveShareRule.cs │ ├── SaveShareRule.resx │ ├── SetVaule.Designer.cs │ ├── SetVaule.cs │ ├── SetVaule.resx │ ├── SettingWindow.Designer.cs │ ├── SettingWindow.cs │ ├── SettingWindow.resx │ ├── ShowSheetForm.Designer.cs │ ├── ShowSheetForm.cs │ ├── ShowSheetForm.resx │ ├── ShowTextForm.Designer.cs │ ├── ShowTextForm.cs │ ├── ShowTextForm.resx │ ├── SortRule.Designer.cs │ ├── SortRule.cs │ ├── SortRule.resx │ ├── StaticDataAddWindow.Designer.cs │ ├── StaticDataAddWindow.cs │ ├── StaticDataAddWindow.resx │ ├── StaticDataManageWindow.Designer.cs │ ├── StaticDataManageWindow.cs │ ├── StaticDataManageWindow.resx │ ├── UserFeedbackWindow.Designer.cs │ ├── UserFeedbackWindow.cs │ └── UserFeedbackWindow.resx ├── HttpHelper/ │ ├── ContentModific.cs │ ├── HttpRequest.cs │ ├── HttpResponse.cs │ ├── ParameterContentModific.cs │ ├── ParameterHttpRequest.cs │ └── ParameterHttpResponse.cs ├── LICENSE ├── MyHelper/ │ ├── MyExtensionMethods.cs │ ├── MyGlobalHelper.cs │ ├── MyJsonHelper.cs │ ├── MyKeyValuePair.cs │ ├── SelfUpgradeHelp.cs │ └── SerializableHelper.cs ├── Properties/ │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── Resources/ │ ├── MyResource.Designer.cs │ └── MyResource.resx ├── WebService/ │ ├── ConfigurationData.cs │ ├── DataModel/ │ │ ├── BaseResultModel.cs │ │ ├── RuleDetails.cs │ │ └── ShareRuleSummary.cs │ ├── FeedbackService.cs │ ├── HttpServer/ │ │ ├── CertificatesHelper.cs │ │ ├── MyHttpListener.cs │ │ └── MySocketHelper.cs │ ├── MyWebTool.cs │ ├── OperationReportService.cs │ ├── RemoteLogService.cs │ ├── RemoteRuleService.cs │ ├── ShareRuleService.cs │ ├── UpgradeService.cs │ └── UserComputerInfo.cs ├── packages.config └── readme.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: .dockerignore ================================================ **/.dockerignore **/.env **/.git **/.gitignore **/.vs **/.vscode **/*.*proj.user **/azds.yaml **/charts **/bin **/obj **/Dockerfile **/Dockerfile.develop **/docker-compose.yml **/docker-compose.*.yml **/*.dbmdl **/*.jfm **/secrets.dev.yaml **/values.dev.yaml **/.toolstarget ================================================ FILE: .gitattributes ================================================ # Auto detect text files and perform LF normalization * text=auto # Custom for Visual Studio *.cs diff=csharp # Standard to msysgit *.doc diff=astextplain *.DOC diff=astextplain *.docx diff=astextplain *.DOCX diff=astextplain *.dot diff=astextplain *.DOT diff=astextplain *.pdf diff=astextplain *.PDF diff=astextplain *.rtf diff=astextplain *.RTF diff=astextplain ================================================ FILE: .gitignore ================================================ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # User-specific files *.rsuser *.suo *.user *.userosscache *.sln.docstates # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ [Aa][Rr][Mm]/ [Aa][Rr][Mm]64/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ # Visual Studio 2015/2017 cache/options directory .vs/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ # Visual Studio 2017 auto generated files Generated\ Files/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* # NUNIT *.VisualState.xml TestResult.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c # Benchmark Results BenchmarkDotNet.Artifacts/ # .NET Core project.lock.json project.fragment.lock.json artifacts/ # StyleCop StyleCopReport.xml # Files built by Visual Studio *_i.c *_p.c *_h.h *.ilk *.meta *.obj *.iobj *.pch *.pdb *.ipdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *_wpftmp.csproj *.log *.vspscc *.vssscc .builds *.pidb *.svclog *.scc # Chutzpah Test files _Chutzpah* # Visual C++ cache files ipch/ *.aps *.ncb *.opendb *.opensdf *.sdf *.cachefile *.VC.db *.VC.VC.opendb # Visual Studio profiler *.psess *.vsp *.vspx *.sap # Visual Studio Trace Files *.e2e # TFS 2012 Local Workspace $tf/ # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user # JustCode is a .NET coding add-in .JustCode # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # AxoCover is a Code Coverage Tool .axoCover/* !.axoCover/settings.json # Visual Studio code coverage results *.coverage *.coveragexml # NCrunch _NCrunch_* .*crunch*.local.xml nCrunchTemp_* # MightyMoose *.mm.* AutoTest.Net/ # Web workbench (sass) .sass-cache/ # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml # Note: Comment the next line if you want to checkin your web deploy settings, # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj # Microsoft Azure Web App publish settings. Comment the next line if you want to # checkin your Azure Web App publish settings, but sensitive information contained # in these scripts will be unencrypted PublishScripts/ # NuGet Packages *.nupkg # The packages folder can be ignored because of Package Restore **/[Pp]ackages/* # except build/, which is used as an MSBuild target. !**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/[Pp]ackages/repositories.config # NuGet v3's project.json files produces more ignorable files *.nuget.props *.nuget.targets # Microsoft Azure Build Output csx/ *.build.csdef # Microsoft Azure Emulator ecf/ rcf/ # Windows Store app package directories and files AppPackages/ BundleArtifacts/ Package.StoreAssociation.xml _pkginfo.txt *.appx # Visual Studio cache files # files ending in .cache can be ignored *.[Cc]ache # but keep track of directories ending in .cache !?*.[Cc]ache/ # Others ClientBin/ ~$* *~ *.dbmdl *.dbproj.schemaview *.jfm *.pfx *.publishsettings orleans.codegen.cs # Including strong name files can present a security risk # (https://github.com/github/gitignore/pull/2483#issue-259490424) #*.snk # Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ # RIA/Silverlight projects Generated_Code/ # Backup & report files from converting an old project file # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm ServiceFabricBackup/ *.rptproj.bak # SQL Server files *.mdf *.ldf *.ndf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings *.rptproj.rsuser *- Backup*.rdl # Microsoft Fakes FakesAssemblies/ # GhostDoc plugin setting file *.GhostDoc.xml # Node.js Tools for Visual Studio .ntvs_analysis.dat node_modules/ # Visual Studio 6 build log *.plg # Visual Studio 6 workspace options file *.opt # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) *.vbw # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts **/*.DesktopClient/ModelManifest.xml **/*.Server/GeneratedArtifacts **/*.Server/ModelManifest.xml _Pvt_Extensions # Paket dependency manager .paket/paket.exe paket-files/ # FAKE - F# Make .fake/ # JetBrains Rider .idea/ *.sln.iml # CodeRush personal settings .cr/personal # Python Tools for Visual Studio (PTVS) __pycache__/ *.pyc # Cake - Uncomment if you are using it # tools/** # !tools/packages.config # Tabs Studio *.tss # Telerik's JustMock configuration file *.jmconfig # BizTalk build output *.btp.cs *.btm.cs *.odx.cs *.xsd.cs # OpenCover UI analysis results OpenCover/ # Azure Stream Analytics local run output ASALocalRun/ # MSBuild Binary and Structured Log *.binlog # NVidia Nsight GPU debugger configuration file *.nvuser # MFractors (Xamarin productivity tool) working folder .mfractor/ # Local History for Visual Studio .localhistory/ # BeatPulse healthcheck temp database healthchecksdb #add by lulianqi ================================================ FILE: AutoTest/CsvFileHelper.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; /******************************************************************************* * Copyright (c) 2016 lijie * All rights reserved. * * 文件名称: * 内容摘要: mycllq@hotmail.com * * 历史记录: * 日 期: 201601010 创建人: lulianqi * 描 述: 创建 *******************************************************************************/ namespace FreeHttp.AutoTest.MyCommonHelper.FileHelper { /// /// 单个元素支持包括tab,换行回车(\r\n),空内容等在内的所有文本字符 (在使用时请确定文件的编码方式) /// 可指定元素分割符,行非官方必须为\r\n(\r\n可以作为内容出现在元素中),转义字符必须为". /// 转义所有的引号必须出现在首尾(如果不在首尾,则不会按转义符处理,直接作为引号处理)[excel可以读取转义出现在中间的情况,而本身存储不会使用这种方式,保存时并会强制修复这种异常,所以这里遇到中间转义的情况直接抛出指定异常] /// 如果在被转义的情况下需要出现引号,则使用2个引号代替(如果需要在首部使用双引号,则需要转义该元素,其他地方可直接使用)(excel对所有双引号都进行转义,无论其出现位置,对于保存方式可以选择是否按excel的方式进行保存) /// 每一行的结尾是不需要逗号结束的,如果多加一个逗号则标识该行会多一个空元素 /// 空行也是一个空元素,一个逗号是2个空元素,所以不可能出现有的行元素为空 /// 使用问题或疑问可通过mycllq@hotmail.com进行联系 /// public sealed class CsvFileHelper : IDisposable { #region Members //private FileStream _fileStream; private Stream _stream; private StreamReader _streamReader; //private StreamWriter _streamWriter; //private Stream _memoryStream; private Encoding _encoding; //private readonly StringBuilder _columnBuilder = new StringBuilder(100); private Type _type = Type.File; private bool _trimColumns = false; private char _csvSeparator = ','; #endregion Members #region Properties /// /// Gets or sets whether column values should be trimmed /// public bool TrimColumns { get { return _trimColumns; } set { _trimColumns = value; } } public Type DataSouceType { get{ return _type;} } /// /// get or set Csv Separator (Default Values is ,) /// public char CsvSeparator { get { return _csvSeparator; } set { _csvSeparator = value; } } #endregion Properties #region Enums /// /// Type enum /// public enum Type { File, Stream } #endregion Enums #region Methods /// /// Initialises the reader to work from a file /// /// File path public CsvFileHelper(string filePath):this(filePath, Encoding.Default) { } /// /// Initialises the reader to work from a file /// /// File path /// Encoding public CsvFileHelper(string filePath, Encoding encoding) { _type = Type.File; if (!File.Exists(filePath)) { throw new FileNotFoundException(string.Format("The file '{0}' does not exist.", filePath)); } //_stream = File.OpenRead(filePath); //return a FileStream (OpenRead 源码就是 return new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);) _stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); _stream.Position = 0; _encoding = (encoding ?? Encoding.Default); _streamReader = new StreamReader(_stream, _encoding); } /// /// Initialises the reader to work from an existing stream /// /// Stream public CsvFileHelper(Stream stream):this(stream, Encoding.Default) { } /// /// Initialises the reader to work from an existing stream /// /// Stream /// Encoding public CsvFileHelper(Stream stream, Encoding encoding) { _type = Type.Stream; if (stream == null) { throw new ArgumentNullException("The supplied stream is null."); } _stream = stream; _stream.Position = 0; _encoding = (encoding ?? Encoding.Default); _streamReader = new StreamReader(_stream, _encoding); } /// /// Initialises the reader to work from an existing stream (with the Separator char) /// /// Stream /// Encoding /// the Separator char public CsvFileHelper(Stream stream, Encoding encoding, char yourSeparator): this(stream, encoding) { CsvSeparator = yourSeparator; } private List ParseLine(string line) { StringBuilder _columnBuilder = new StringBuilder(); List Fields = new List(); bool inColumn = false; //是否是在一个列元素里 bool inQuotes = false; //是否需要转义 bool isNotEnd = false; //读取完毕未结束转义 _columnBuilder.Remove(0, _columnBuilder.Length); // Iterate through every character in the line for (int i = 0; i < line.Length; i++) { char character = line[i]; // If we are not currently inside a column if (!inColumn) { // If the current character is a double quote then the column value is contained within // double quotes, otherwise append the next character inColumn = true; if (character == '"') { inQuotes = true; continue; } } // If we are in between double quotes if (inQuotes) { if ((i + 1) == line.Length)//这个字符已经结束了整行 { if (character == '"') //正常转义结束,且该行已经结束 { inQuotes = false; continue; //当前字符不用添加,跳出后直结束后会添加该元素 } else //异常结束,转义未收尾 { isNotEnd = true; } } else if (character == '"' && line[i + 1] == _csvSeparator) //结束转义,且后面有可能还有数据 { inQuotes = false; inColumn = false; i++; //跳过下一个字符 } else if (character == '"' && line[i + 1] == '"') //双引号转义 { i++; //跳过下一个字符 } else if (character == '"') //双引号单独出现(这种情况实际上已经是格式错误,为了兼容可暂时不处理) { throw new Exception(string.Format("[{0}]:格式错误,错误的双引号转义 near [{1}] ","ParseLine", line)); } //其他情况直接跳出,后面正常添加 } else if (character == _csvSeparator) inColumn = false; // If we are no longer in the column clear the builder and add the columns to the list if (!inColumn) //结束该元素时inColumn置为false,并且不处理当前字符,直接进行Add { Fields.Add(TrimColumns ? _columnBuilder.ToString().Trim() : _columnBuilder.ToString()); _columnBuilder.Remove(0, _columnBuilder.Length); } else // append the current column _columnBuilder.Append(character); } // If we are still inside a column add a new one (标准格式一行结尾不需要逗号结尾,而上面for是遇到逗号才添加的,为了兼容最后还要添加一次) if (inColumn) { if (isNotEnd) { _columnBuilder.Append("\r\n"); } Fields.Add(TrimColumns ? _columnBuilder.ToString().Trim() : _columnBuilder.ToString()); } //如果inColumn为false,说明已经添加,因为最后一个字符为分隔符,所以后面要加上一个空元素 //另外一种情况是line为""空行,(空行也是一个空元素,一个逗号是2个空元素),正好inColumn为默认值false,在此处添加一空元素 else { Fields.Add(""); } return Fields; } /// /// 处理未完成的Csv单行 /// /// 数据源 /// 元素列表 private List ParseContinueLine(string line) { StringBuilder _columnBuilder = new StringBuilder(); List Fields = new List(); _columnBuilder.Remove(0, _columnBuilder.Length); if (line == "") { Fields.Add("\r\n"); return Fields; } for (int i = 0; i < line.Length; i++) { char character = line[i]; if ((i + 1) == line.Length)//这个字符已经结束了整行 { if (character == '"') //正常转义结束,且该行已经结束 { Fields.Add(TrimColumns ? _columnBuilder.ToString().TrimEnd() : _columnBuilder.ToString()); return Fields; } else //异常结束,转义未收尾 { _columnBuilder.Append("\r\n"); Fields.Add(_columnBuilder.ToString()); return Fields; } } else if (character == '"' && line[i + 1] == _csvSeparator) //结束转义,且后面有可能还有数据 { Fields.Add(TrimColumns ? _columnBuilder.ToString().TrimEnd() : _columnBuilder.ToString()); i++; //跳过下一个字符 Fields.AddRange(ParseLine(line.Remove(0, i+1))); break; } else if (character == '"' && line[i + 1] == '"') //双引号转义 { i++; //跳过下一个字符 } else if (character == '"') //双引号单独出现(这种情况实际上已经是格式错误,转义用双引号一定是【,"】【",】形式,包含在里面的双引号需要使用一对双引号进行转义) { throw new Exception(string.Format("[{0}]:格式错误,错误的双引号转义 near [{1}]", "ParseContinueLine", line)); } _columnBuilder.Append(character); } return Fields; } public List> GetListCsvData() { _stream.Position = 0; List> tempListCsvData = new List>(); bool isNotEndLine = false; //这里的ReadLine可能把转义的/r/n分割,需要后面单独处理 string tempCsvRowString = _streamReader.ReadLine(); while (tempCsvRowString!=null) { List tempCsvRowList; if (isNotEndLine) { tempCsvRowList = ParseContinueLine(tempCsvRowString); isNotEndLine = (tempCsvRowList.Count > 0 && tempCsvRowList[tempCsvRowList.Count - 1].EndsWith("\r\n")); List myNowContinueList = tempListCsvData[tempListCsvData.Count - 1]; myNowContinueList[myNowContinueList.Count - 1] += tempCsvRowList[0]; tempCsvRowList.RemoveAt(0); myNowContinueList.AddRange(tempCsvRowList); } else { tempCsvRowList = ParseLine(tempCsvRowString); isNotEndLine = (tempCsvRowList.Count > 0 && tempCsvRowList[tempCsvRowList.Count - 1].EndsWith("\r\n")); tempListCsvData.Add(tempCsvRowList); } tempCsvRowString = _streamReader.ReadLine(); } return tempListCsvData; } public void Dispose() { if(_streamReader!=null) { _streamReader.Dispose(); } if(_stream!=null) { _stream.Dispose(); } } #endregion #region StaticTool #region 编码方式可接受值 //请考虑让应用程序使用 UTF-8 或 Unicode (UTF-16) 作为默认编码。大多数其他编码要么不完整并将许多字符转换为“?”,要么在不同的平台上具有稍有不同的行为。非 Unicode 编码通常具有多义性,应用程序则不再试图确定合适的编码,也不再提供用户用来修复文本语言或编码的更正下拉菜单。 /* This code produces the following output. CodePage identifier and name BrDisp BrSave MNDisp MNSave 1-Byte ReadOnly 37 IBM037 False False False False True True 437 IBM437 False False False False True True 500 IBM500 False False False False True True 708 ASMO-708 True True False False True True 720 DOS-720 True True False False True True 737 ibm737 False False False False True True 775 ibm775 False False False False True True 850 ibm850 False False False False True True 852 ibm852 True True False False True True 855 IBM855 False False False False True True 857 ibm857 False False False False True True 858 IBM00858 False False False False True True 860 IBM860 False False False False True True 861 ibm861 False False False False True True 862 DOS-862 True True False False True True 863 IBM863 False False False False True True 864 IBM864 False False False False True True 865 IBM865 False False False False True True 866 cp866 True True False False True True 869 ibm869 False False False False True True 870 IBM870 False False False False True True 874 windows-874 True True True True True True 875 cp875 False False False False True True 932 shift_jis True True True True False True 936 gb2312 True True True True False True 949 ks_c_5601-1987 True True True True False True 950 big5 True True True True False True 1026 IBM1026 False False False False True True 1047 IBM01047 False False False False True True 1140 IBM01140 False False False False True True 1141 IBM01141 False False False False True True 1142 IBM01142 False False False False True True 1143 IBM01143 False False False False True True 1144 IBM01144 False False False False True True 1145 IBM01145 False False False False True True 1146 IBM01146 False False False False True True 1147 IBM01147 False False False False True True 1148 IBM01148 False False False False True True 1149 IBM01149 False False False False True True 1200 utf-16 False True False False False True 1201 unicodeFFFE False False False False False True 1250 windows-1250 True True True True True True 1251 windows-1251 True True True True True True 1252 Windows-1252 True True True True True True 1253 windows-1253 True True True True True True 1254 windows-1254 True True True True True True 1255 windows-1255 True True True True True True 1256 windows-1256 True True True True True True 1257 windows-1257 True True True True True True 1258 windows-1258 True True True True True True 1361 Johab False False False False False True 10000 macintosh False False False False True True 10001 x-mac-japanese False False False False False True 10002 x-mac-chinesetrad False False False False False True 10003 x-mac-korean False False False False False True 10004 x-mac-arabic False False False False True True 10005 x-mac-hebrew False False False False True True 10006 x-mac-greek False False False False True True 10007 x-mac-cyrillic False False False False True True 10008 x-mac-chinesesimp False False False False False True 10010 x-mac-romanian False False False False True True 10017 x-mac-ukrainian False False False False True True 10021 x-mac-thai False False False False True True 10029 x-mac-ce False False False False True True 10079 x-mac-icelandic False False False False True True 10081 x-mac-turkish False False False False True True 10082 x-mac-croatian False False False False True True 20000 x-Chinese-CNS False False False False False True 20001 x-cp20001 False False False False False True 20002 x-Chinese-Eten False False False False False True 20003 x-cp20003 False False False False False True 20004 x-cp20004 False False False False False True 20005 x-cp20005 False False False False False True 20105 x-IA5 False False False False True True 20106 x-IA5-German False False False False True True 20107 x-IA5-Swedish False False False False True True 20108 x-IA5-Norwegian False False False False True True 20127 us-ascii False False True True True True 20261 x-cp20261 False False False False False True 20269 x-cp20269 False False False False True True 20273 IBM273 False False False False True True 20277 IBM277 False False False False True True 20278 IBM278 False False False False True True 20280 IBM280 False False False False True True 20284 IBM284 False False False False True True 20285 IBM285 False False False False True True 20290 IBM290 False False False False True True 20297 IBM297 False False False False True True 20420 IBM420 False False False False True True 20423 IBM423 False False False False True True 20424 IBM424 False False False False True True 20833 x-EBCDIC-KoreanExtended False False False False True True 20838 IBM-Thai False False False False True True 20866 koi8-r True True True True True True 20871 IBM871 False False False False True True 20880 IBM880 False False False False True True 20905 IBM905 False False False False True True 20924 IBM00924 False False False False True True 20932 EUC-JP False False False False False True 20936 x-cp20936 False False False False False True 20949 x-cp20949 False False False False False True 21025 cp1025 False False False False True True 21866 koi8-u True True True True True True 28591 iso-8859-1 True True True True True True 28592 iso-8859-2 True True True True True True 28593 iso-8859-3 False False True True True True 28594 iso-8859-4 True True True True True True 28595 iso-8859-5 True True True True True True 28596 iso-8859-6 True True True True True True 28597 iso-8859-7 True True True True True True 28598 iso-8859-8 True True False False True True 28599 iso-8859-9 True True True True True True 28603 iso-8859-13 False False False False True True 28605 iso-8859-15 False True True True True True 29001 x-Europa False False False False True True 38598 iso-8859-8-i True True True True True True 50220 iso-2022-jp False False True True False True 50221 csISO2022JP False True True True False True 50222 iso-2022-jp False False False False False True 50225 iso-2022-kr False False True False False True 50227 x-cp50227 False False False False False True 51932 euc-jp True True True True False True 51936 EUC-CN False False False False False True 51949 euc-kr False False True True False True 52936 hz-gb-2312 True True True True False True 54936 GB18030 True True True True False True 57002 x-iscii-de False False False False False True 57003 x-iscii-be False False False False False True 57004 x-iscii-ta False False False False False True 57005 x-iscii-te False False False False False True 57006 x-iscii-as False False False False False True 57007 x-iscii-or False False False False False True 57008 x-iscii-ka False False False False False True 57009 x-iscii-ma False False False False False True 57010 x-iscii-gu False False False False False True 57011 x-iscii-pa False False False False False True 65000 utf-7 False False True True False True 65001 utf-8 True True True True False True 65005 utf-32 False False False False False True 65006 utf-32BE False False False False False True */ #endregion /// /// 静态构造函数只有在静态方法将要使用的时候才进行调用(静态成员同理) /// static CsvFileHelper() { isSaveAsExcel = true; defaultEncoding = new System.Text.UTF8Encoding(false); } private static bool isSaveAsExcel ; private static Encoding defaultEncoding; private static char csvSeparator = ','; //private static Encoding utfBom = System.Text.Encoding.GetEncoding("GB2312"); /// /// get or set Csv Separator (Default Values is ,) /// public static char DefaultCsvSeparator { get { return csvSeparator; } set { csvSeparator = value; } } /// /// get or set if save as Excel type (出现在首部的“是必须转义的,而出现在中间的不可以不用专门转义,而excel对所有双引号都进行转义,无论其出现位置) /// public static bool IsSaveAsExcel { get { return isSaveAsExcel; } set { isSaveAsExcel = value; } } /// /// get or set Default Encoding (notice : if your want the System not with bom ,you should use the relevant Encoding) /// public static Encoding DefaultEncoding { get { return defaultEncoding; } set { defaultEncoding = value; } } private static void WriteCsvVeiw(List> yourListCsvData, TextWriter writer) { foreach(List tempField in yourListCsvData) { if (tempField == null || tempField.Count==0) { continue; } WriteCsvLine(tempField, writer); } } private static void WriteCsvLine(List fields, TextWriter writer) { if (fields == null || fields.Count == 0) { return; } StringBuilder myStrBld = new StringBuilder(); //对于CSV数据来说不可能出现一行的数据元素的数量是0的情况,所以不用考虑fields.Count为0的情况(如果为0则为错误数据直接忽略) //foreach(string tempField in fields) //使用foreach会产生许多不必要的string拷贝 for (int i = 0; i < fields.Count; i++) { //通过文件转换出来的fields是不会为null的,为了兼容外部构建数据源,可能出现null的情况,这里强制转换为"" if (fields[i] == null) { myStrBld.Append(""); } else { bool quotesRequired = (isSaveAsExcel ? (fields[i].Contains(csvSeparator) || fields[i].Contains("\r\n") || fields[i].Contains("\"")) : (fields[i].Contains(csvSeparator) || fields[i].Contains("\r\n") || fields[i].StartsWith("\""))); if (quotesRequired) { if (fields[i].Contains("\"")) { myStrBld.Append(String.Format("\"{0}\"", fields[i].Replace("\"", "\"\""))); } else { myStrBld.Append(String.Format("\"{0}\"", fields[i])); } } else { myStrBld.Append(fields[i]); } } if (i < fields.Count - 1) { myStrBld.Append(csvSeparator); } } writer.WriteLine(myStrBld.ToString()); } public static void SaveCsvFile(string yourFilePath,List> yourDataSouse,bool isAppend,Encoding yourEncode) { //FileStream myCsvStream = new FileStream(yourFilePath, FileMode.Create, FileAccess.ReadWrite); if (isAppend && !File.Exists(yourFilePath)) { throw new Exception("in Append mode the FilePath must exist"); } if(!isAppend && !File.Exists(yourFilePath)) { if (yourFilePath.Contains('\\')) { if (!Directory.Exists(yourFilePath.Remove(yourFilePath.LastIndexOf('\\')))) { throw new Exception("the FilePath or the Directory it not exist"); } } else { throw new Exception("find error in your FilePath"); } } //StreamWriter myCsvSw = new StreamWriter(yourFilePath, isAppend, yourEncode); //isAppend对应的Stream的FileMode 为 append ? FileMode.Append : FileMode.Create //文件如果被其他任务打开并处于Write模式,此处会抛出异常(该工具也含多处异常抛出,使用时务必考虑接收这些异常) StreamWriter myCsvSw = new StreamWriter(new FileStream(yourFilePath, isAppend ? FileMode.Append : FileMode.Create, FileAccess.Write, FileShare.ReadWrite), yourEncode); if (yourDataSouse == null) { throw new Exception("your DataSouse is null"); } WriteCsvVeiw(yourDataSouse, myCsvSw); myCsvSw.Dispose(); } public static void SaveCsvFile(string yourFilePath, List> yourDataSouse) { SaveCsvFile(yourFilePath, yourDataSouse, false, defaultEncoding); } public static Stream OpenFile(string filePath) { Stream myStream; try { myStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); } catch (Exception) { return null; } return myStream; } #endregion } } ================================================ FILE: AutoTest/MyBytesHelper.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest { /// /// hex 字符串显示时的分割方式 /// public enum ShowHexMode { @null = 0, //不分格每个字节 space = 1, //以分格分割 spit0x = 2, //以0x分割 (用于显示16进制) spitSpace0x = 3, //以 0x分割 (用于显示16进制) spit0b = 4, //以0b分割 (用于显示2进制) spitSpace0b = 5, //以 0b分割 (用于显示2进制) spit0d = 6, //以0d分割 (用于显示10进制) spitSpace0d = 7, //以 0d分割 (用于显示10进制) spit_ = 8, //以下划线分割 spitM_ = 9 //以中划线分割 } /// /// 表示要代表数据的进制 /// public enum HexDecimal { hex2 = 2, hex10 = 10, //001 224 023 表示显示需要补0 hex16 = 16 } public class MyBytes { #region ByteSring private static Dictionary DictionaryHexDecimal = new Dictionary() { { HexDecimal.hex2, 8 }, { HexDecimal.hex10, 3 }, { HexDecimal.hex16, 2 } }; private static Dictionary DictionaryShowHexMode = new Dictionary() { { ShowHexMode.spitSpace0x, " 0x" }, { ShowHexMode.spit0x, "0x" }, { ShowHexMode.spitSpace0d, " 0d" }, { ShowHexMode.spit0d, "0d" }, { ShowHexMode.spitSpace0b, " 0b" }, { ShowHexMode.spit0b, "0b" }, { ShowHexMode.spitM_, "-" }, { ShowHexMode.spit_, "_" }, { ShowHexMode.space, " " }, { ShowHexMode.@null, "" } }; /// /// 将字符串转换成16进制的可读字符串(使用默认UTF8编码) /// /// 用户字符串 /// 返回结果 public static string StringToHexString(string yourStr) { return StringToHexString(yourStr, Encoding.UTF8, HexDecimal.hex16, ShowHexMode.space); } /// /// 将字符串转换成指定进制的可读字符串 (使用指定编码指定进制及指定格式) /// /// 用户字符串 /// 指定编码 /// 指定进制 /// 指定格式 /// 返回结果 public static string StringToHexString(string yourStr, Encoding encode, HexDecimal hexaDecimal, ShowHexMode stringMode) { byte[] tempBytes = encode.GetBytes(yourStr); return ByteToHexString(tempBytes, hexaDecimal, stringMode); } /// /// 将字节数组转换为指定进制的可读字符串 /// /// 需要转换的字节数组 /// 指定进制 /// 指定格式 /// 返回结果 public static string ByteToHexString(byte[] yourBytes, HexDecimal hexDecimal, ShowHexMode stringMode) { // 如果只考虑16进制对格式没有特殊要求 可以直接使用 ((byte)233).ToString("X2"); 或 BitConverter.ToString(new byte[]{1,2,3,10,12,233}) if (yourBytes == null) { return null; } StringBuilder result = new StringBuilder(DictionaryHexDecimal[hexDecimal] + DictionaryShowHexMode[stringMode].Length); for (int i = 0; i < yourBytes.Length; i++) { result.Append(DictionaryShowHexMode[stringMode]); result.Append(Convert.ToString(yourBytes[i], (int)hexDecimal).PadLeft(DictionaryHexDecimal[hexDecimal], '0')); } return result.ToString().Trim(); } /// /// 将可读指定进制的数据转换为字节数组(因为用户数据可能会是非法数据,遇到非法数据非法会抛出异常) /// /// 需要转换的字符串 /// 指定进制 /// 指定格式 /// 返回结果(如果yourStr为""返回长度为0的byte[]) public static byte[] HexStringToByte(string yourStr, HexDecimal hexDecimal, ShowHexMode stringMode) { if (hexDecimal == HexDecimal.hex16 && (stringMode == ShowHexMode.spit0b || stringMode == ShowHexMode.spit0d || stringMode == ShowHexMode.spitSpace0b || stringMode == ShowHexMode.spitSpace0d)) { throw new Exception("your HexaDecimal and ShowHexMode is conflict"); } string[] hexStrs; byte[] resultBytes; string modeStr = string.Empty; //string.Empty 不等于 null if (stringMode != ShowHexMode.@null) { modeStr = DictionaryShowHexMode[stringMode]; } if (modeStr == string.Empty) { if (yourStr.Length % DictionaryHexDecimal[hexDecimal] != 0) { throw new Exception("error leng of your data"); } long tempHexNum = yourStr.Length / DictionaryHexDecimal[hexDecimal]; hexStrs = new string[tempHexNum]; for (int startIndex = 0; startIndex < tempHexNum; startIndex++) { hexStrs[startIndex] = yourStr.Substring(startIndex * DictionaryHexDecimal[hexDecimal], DictionaryHexDecimal[hexDecimal]); } } else { //使用StringSplitOptions.RemoveEmptyEntries去除空值因为0xFF0xFF可能会有第一个值为空的情况 //对于0xFF 0xFF使用 0x分割,第一个值可能会带0x,不过 Convert.ToByte可以兼容这种情况(不过还是可能带来第一个字节允许使用不应用的分割的情况) hexStrs = yourStr.Split(new string[] { modeStr }, StringSplitOptions.RemoveEmptyEntries); } try { resultBytes = new byte[hexStrs.Length]; for (int i = 0; i < hexStrs.Length; i++) { resultBytes[i] = Convert.ToByte(hexStrs[i], (int)hexDecimal); } } catch (Exception ex) { throw new Exception(string.Format("error data ,can not change your hex string to your hex, hexDecimal[{0}] ShowHexMode[{1}]", hexDecimal, stringMode), ex); } return resultBytes; } /// /// 将可读指定进制的数据转换为字节数组(因为用户数据可能会是非法数据,遇到非法数据非法会抛出异常)(使用猜测的方式发现分割字符串) /// /// 需要转换的字符串 /// 指定进制 /// 返回结果(如果yourStr为""返回长度为0的byte[]) public static byte[] HexStringToByte(string yourStr, HexDecimal hexDecimal) { if (yourStr == null) throw new Exception("your source string is null"); foreach(var tryStringSpitMode in DictionaryShowHexMode) { if (hexDecimal == HexDecimal.hex16 && (tryStringSpitMode.Key == ShowHexMode.spit0b || tryStringSpitMode.Key == ShowHexMode.spit0d || tryStringSpitMode.Key == ShowHexMode.spitSpace0b || tryStringSpitMode.Key == ShowHexMode.spitSpace0d)) continue; if (yourStr.Contains(tryStringSpitMode.Value)) return HexStringToByte(yourStr, hexDecimal, tryStringSpitMode.Key); } throw new Exception("unknown exception with HexStringToByte"); } public static bool ByteToSring(byte[] yourBytes, Encoding yourEncoding, ref string outStr) { try { outStr = yourEncoding.GetString(yourBytes); return true; } catch { return false; } } public static bool StringToByte(string yourStr, Encoding yourEncoding, ref byte[] outBytes) { try { outBytes = yourEncoding.GetBytes(yourStr); return true; } catch { return false; } } #endregion /// /// 比较两个字节数组 /// /// /// /// public static bool IsBytesSame(byte[] bytesA, byte[] bytesB) { if (bytesA == null || bytesB == null) { return false; } if (bytesA.Length == bytesB.Length) { for (int i = 0; i < bytesB.Length; i++) { if (bytesA[i] != bytesB[i]) { return false; } } return true; } else { return false; } } /// /// 去除bytes尾部空值 /// /// /// public static byte[] RmBytesEnd(byte[] yourBytes) { if (yourBytes == null) { return null; } int tempLen = yourBytes.Length; for (int i = yourBytes.Length - 1; i > 0; i--) { if (yourBytes[i] == 0x00) { tempLen--; } else { break; } } byte[] tempBytes = new byte[tempLen]; for (int i = 0; i < tempLen; i++) { tempBytes[i] = yourBytes[i]; } return tempBytes; } /// /// 生成随机字节数组 /// /// 数组长度 /// 随机字节数组 public static byte[] CreatRandomBytes(int byteLen) { byte[] tempBytes = new byte[byteLen]; for (int i = 0; i < byteLen; i++) { Random ran = new Random(Guid.NewGuid().GetHashCode()); { tempBytes[i] = (byte)ran.Next(0x00, 0xff); } } return tempBytes; } /// /// i will change your bytes to IP by vanelife way /// 3 /// your bytes /// your IP public static string GetIpByBytes(byte[] yourData) { if (yourData == null) { return "null data"; } if (yourData.Length > 6) { return "length error"; } else { string tempIp = ""; for (int i = 0; i < yourData.Length; i++) { tempIp += (int)yourData[i] + "."; } tempIp = tempIp.TrimEnd(new char[] { '.' }); return tempIp; } } /// /// i will change your bytes to int,and bytes can not more than 4 byte(默认 小端序,低位在前,这里使用大端序列,并仅取2字节) /// /// your bytes /// your len public static int GetByteLen(byte[] yourLen) { //return BitConverter.ToUInt16(yourLen,0); if (yourLen.Length > 4) { return -1; } else { int tempLen = 0; for (int i = 0; i < yourLen.Length; i++) { tempLen += (int)Math.Pow(256, yourLen.Length - i - 1) * yourLen[i]; } return tempLen; } } /// /// i will change a int to byte and change the 1,2(默认 小端序,低位在前,这里使用大端序列,并仅取2字节) /// /// your Len /// your bytes public static byte[] CreateInt16Bytes(int yourLen) { byte[] tempData = BitConverter.GetBytes(yourLen); byte[] dataToBack = new byte[2]; dataToBack[0] = tempData[1]; dataToBack[1] = tempData[0]; return dataToBack; //int c = 97; //byte[] cb = BitConverter.GetBytes(c);//小端 //Array.Reverse(cb);//反转成大端 Reverse() 无返回值直接反转目标 //也可以先把数值转换再转成字节数组 //int c2 = IPAddress.HostToNetworkOrder(c);//大端字节数 //byte[] bb = System.BitConverter.GetBytes(c2);//字节数组 //string s = "code"; //byte[] sbb = Encoding.BigEndianUnicode.GetBytes(s);//大端 //byte[] sbs = Encoding.Unicode.GetBytes(s);//小端 //.NET short 网络大小端转换 一般操作系统文件都是小端,网络传输一般使用大端 //System.Net.IPAddress.HostToNetworkOrder(本机到网络转换) //System.Net.IPAddress.NetworkToHostOrder(网络字节转成本机) } /// /// 拼接一组byte[] /// /// byte[] List /// 拼接完成的的byte[] public static byte[] GroupByteList(List yourByteList) { if (yourByteList == null) { throw new Exception("yourByteList is null"); } int byteLen = 0; int nowCopyIndex = 0; byte[] outBytes; foreach (byte[] tempBytes in yourByteList) { byteLen += tempBytes.Length; } outBytes = new byte[byteLen]; foreach (byte[] tempBytes in yourByteList) { Array.Copy(tempBytes, 0, outBytes, nowCopyIndex, tempBytes.Length); nowCopyIndex += tempBytes.Length; } return outBytes; } /// /// byte[]替换 (如果 搜索目标或替换目标为null,直接返回源数组) /// /// 替换源数组 /// 需要被替换目标数组 /// 替换进入的数组 /// 完成替换的byte[] public static byte[] ReplaceBytes(byte[] src, byte[] search, byte[] repl) { if (repl == null) return src; int index = FindBytes(src, search); if (index < 0) return src; byte[] dst = new byte[src.Length - search.Length + repl.Length]; Buffer.BlockCopy(src, 0, dst, 0, index); Buffer.BlockCopy(repl, 0, dst, index, repl.Length); Buffer.BlockCopy(src, index + search.Length, dst, index + repl.Length,src.Length - (index + search.Length)); return dst; } /// /// 在目标数组中查找指定目标第一次出现的索引(没有指定目标返回-1) /// /// 查找源 /// 需要查找的目标 /// 第一次出现的索引(没有指定目标返回-1) public static int FindBytes(byte[] src, byte[] find) { if(src==null|| find==null|| src.Length==0|| find.Length == 0 || find.Length> src.Length) return -1; for (int i = 0; i < src.Length - find.Length +1 ; i++) { if (src[i] == find[0]) { if (find.Length == 1) return i; for(int m=1;m< find.Length;m++) { if (src[i + m] != find[m]) break; if (m == find.Length - 1) return i; } } } return -1; } } } ================================================ FILE: AutoTest/MyCommonTool.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest { public static class MyCommonTool { public static string rootPath = System.Environment.CurrentDirectory; /// /// seed for GenerateRandomStr /// private static int externRandomSeed = 0; /// /// 生成随机字符串 /// /// 字符串长度 /// 生成模式: 0-是有可见ASCII / 1-数字 / 2-大写字母 / 3-小写字母 / 4-特殊字符 / 5-大小写字母 / 6-字母和数字 /// 随机字符串 public static string GenerateRandomStr(int strCount, int GenerateType) { externRandomSeed++; StringBuilder myRandomStr = new StringBuilder(strCount); long mySeed = DateTime.Now.Ticks + externRandomSeed; Random random = new Random((int)(mySeed & 0x0000ffff)); for (int i = 0; i < strCount; i++) { char tempCh; int num = random.Next(); switch (GenerateType) { case 1: tempCh = (char)(0x30 + (num % 10)); break; case 2: tempCh = (char)(0x41 + (num % 26)); break; case 3: tempCh = (char)(0x61 + (num % 26)); break; case 4: int tempValue = 0x20 + ((num % 95)); if ((tempValue >= 0x30 && tempValue <= 0x39) || (tempValue >= 0x41 && tempValue <= 0x5a) || (tempValue >= 0x61 && tempValue <= 0x7a)) { i--; continue; } else { tempCh = (char)tempValue; } break; case 5: tempValue = 0x20 + ((num % 95)); if ((tempValue >= 0x41 && tempValue <= 0x5a) || (tempValue >= 0x61 && tempValue <= 0x7a)) { tempCh = (char)tempValue; } else { i--; continue; } break; case 6: tempValue = 0x20 + ((num % 95)); if ((tempValue >= 0x30 && tempValue <= 0x39) || (tempValue >= 0x41 && tempValue <= 0x5a) || (tempValue >= 0x61 && tempValue <= 0x7a)) { tempCh = (char)tempValue; } else { i--; continue; } break; default: tempCh = (char)(0x20 + (num % 95)); break; } myRandomStr.Append(tempCh); } return myRandomStr.ToString(); } } } ================================================ FILE: AutoTest/MyExtensionMethods.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest { public static class MyExtensionMethods { /// /// 以指定字符将字符串分割并转换为int(eg: "10-11-12-13") /// /// 指定字符串 /// 分割字符 /// 转换结果 /// 是否成功(任意一个转换失败都会返回False) public static bool MySplitToIntArray(this string str, char yourSplitChar, out int[] yourIntArray) { yourIntArray = null; if (str == null) { return false; } string[] strArray = str.Split(new char[] { yourSplitChar }, StringSplitOptions.None); yourIntArray = new int[strArray.Length]; for (int i = 0; i < strArray.Length; i++) { if (!int.TryParse(strArray[i], out yourIntArray[i])) { return false; } } return true; } /// /// 以指定字符将字符串中末尾int数据提取出来(eg: "testdata-10") /// /// 指定字符串 /// 分割字符 /// 提取后的前半截字符串 /// 提取后的int /// 是否成功 int转换失败后也返回错误 public static bool MySplitIntEnd(this string str, char yourSplitChar, out string yourStr, out int yourInt) { yourStr = null; yourInt = 0; if (str == null) { return false; } if (str.Contains(yourSplitChar)) { int lastSplitCharIndex = str.LastIndexOf(yourSplitChar); if (lastSplitCharIndex == str.Length - 1) // 如果使用endwith会产生多余的string对象 { return false; } if (int.TryParse(str.Substring(lastSplitCharIndex + 1, str.Length - lastSplitCharIndex - 1), out yourInt)) { yourStr = str.Substring(0, lastSplitCharIndex); return true; } } return false; } /// /// 添加键值,若遇到已有key则覆盖 /// /// Dictionary /// Key /// Value public static void MyAdd(this Dictionary dc, string yourKey, string yourValue) { if (dc.ContainsKey(yourKey)) { dc[yourKey] = yourValue; } else { dc.Add(yourKey, yourValue); } } /// /// 添加键值,若遇到已有key则覆盖 /// /// T Type /// Dictionary /// yourKey /// yourValue public static void MyAdd(this Dictionary dc, string yourKey, T yourValue) { if (dc.ContainsKey(yourKey)) { dc[yourKey] = yourValue; } else { dc.Add(yourKey, yourValue); } } /// /// 【NameValueCollection】添加键值,检查NameValueCollection是否为null /// /// NameValueCollection /// Key /// Value public static void MyAdd(this NameValueCollection nvc, string yourName, string yourValue) { if (nvc != null) { nvc.Add(yourName, yourValue); } } /// /// 转换为{[key:value][key:value].......} /// /// NameValueCollection /// {[key:value][key:value].......} public static string MyToFormatString(this NameValueCollection nvc) { if (nvc != null) { if (nvc.Count > 0) { if (nvc.Count < 2) { return string.Format("{{ [{0}:{1}] }}", nvc.Keys[0], nvc[nvc.Keys[0]]); } else { StringBuilder tempStrBld = new StringBuilder("{ ", nvc.Count * 32); foreach (string tempKey in nvc.Keys) { tempStrBld.AppendFormat("[{0}:{1}] ", tempKey, nvc[tempKey]); } tempStrBld.Append("}"); return tempStrBld.ToString(); } } } return ""; } /// /// 返回对象的深度克隆(泛型数据,要求T必须为值类型,或类似string的特殊引用类型[因为虽然使用string的克隆会有相同的引用,但对string进行修改的时都会创建新的对象]) /// /// TKey /// TKey /// 目标Dictionary /// 对象的深度克隆 public static Dictionary MyClone(this Dictionary dc) { Dictionary cloneDc = new Dictionary(); foreach (KeyValuePair tempKvp in dc) { cloneDc.Add(tempKvp.Key, tempKvp.Value); } return cloneDc; } /// /// 返回对象的深度克隆(泛型数据,要求T必须为值类型,或类似string的特殊引用类型[因为虽然使用string的克隆会有相同的引用,但对string进行修改的时都会创建新的对象](该重载可以约束支持clone的TValue)) /// /// TKey /// TKey /// 目标Dictionary /// 对象的深度克隆 public static Dictionary MyDeepClone(this Dictionary dc) where TValue : ICloneable { Dictionary cloneDc = new Dictionary(); foreach (KeyValuePair tempKvp in dc) { cloneDc.Add(tempKvp.Key, (TValue)tempKvp.Value.Clone()); } return cloneDc; } public static Dictionary ToChangeType(this Dictionary dc) where TValue : TTargetValue { if(dc!=null) { Dictionary newDc = new Dictionary(); foreach(var item in dc) { newDc.Add(item.Key, item.Value); } return newDc; } return null; } public static void Add(this List> myList, object[] yourValue) { if(yourValue!=null) { List tempAddList = new List(yourValue.Length); for(int i =0 ; i /// 描述可参数化数据结构 (请尽量不要自行解析数据,建议使用getXmlParametContent解析xml数据) /// [Serializable] public class CaseParameterizationContent { public string contentData; public bool hasParameter; public ParameterizationContentEncodingType encodetype; public CaseParameterizationContent() { contentData=null; hasParameter = false; encodetype = ParameterizationContentEncodingType.encode_default; } public CaseParameterizationContent(string yourContentData, bool isParameter) { contentData = yourContentData; hasParameter = isParameter; encodetype = ParameterizationContentEncodingType.encode_default; } public CaseParameterizationContent(string yourContentData) { contentData = yourContentData; hasParameter = false; encodetype = ParameterizationContentEncodingType.encode_default; } /// ///返回一个值指示该caseParameterizationContent是否有被任何数据填充过 /// /// public bool IsFilled() { if (contentData != null) { if (contentData != "") { return true; } } return false; } /// /// 获取运算后的值,掉用此法的该版本的重载将会改变涉及到的staticData数据的游标 /// /// 可用staticData集合 /// 返回对所有staticData数据运算后的结果列表 /// 错误消息(如果没有错误则为null)(在获取参数化数据产生错误后因对当前case设置警示) /// 运算结果 public string GetTargetContentData(ActuatorStaticDataCollection yourActuatorStaticDataCollection, NameValueCollection yourDataResultCollection, out string errorMessage) { string myTargetContentData = contentData; errorMessage = null; if (hasParameter) { myTargetContentData = ParameterizationContentHelper.GetCurrentParametersData(contentData, MyConfiguration.ParametersDataSplitStr, yourActuatorStaticDataCollection, yourDataResultCollection, out errorMessage); } if (encodetype != ParameterizationContentEncodingType.encode_default) { switch (encodetype) { //base64 case ParameterizationContentEncodingType.encode_base64: myTargetContentData = Convert.ToBase64String(Encoding.UTF8.GetBytes(myTargetContentData)); break; case ParameterizationContentEncodingType.decode_base64: try { myTargetContentData = Encoding.UTF8.GetString(Convert.FromBase64String(myTargetContentData)); } catch (Exception ex) { myTargetContentData = "ContentEncoding Error:" + ex.Message; } break; //hex 16 case ParameterizationContentEncodingType.encode_hex16: myTargetContentData = MyBytes.StringToHexString(myTargetContentData); break; case ParameterizationContentEncodingType.decode_hex16: try { byte[] nowBytes = MyBytes.HexStringToByte(myTargetContentData, HexDecimal.hex16, ShowHexMode.space); myTargetContentData = Encoding.UTF8.GetString(nowBytes); } catch (Exception ex) { myTargetContentData = "ContentEncoding Error:" + ex.Message; } break; //hex 2 case ParameterizationContentEncodingType.encode_hex2: myTargetContentData = MyBytes.StringToHexString(myTargetContentData, Encoding.UTF8, HexDecimal.hex2, ShowHexMode.space); break; case ParameterizationContentEncodingType.decode_hex2: try { byte[] nowBytes = MyBytes.HexStringToByte(myTargetContentData, HexDecimal.hex2, ShowHexMode.space); myTargetContentData = Encoding.UTF8.GetString(nowBytes); } catch (Exception ex) { myTargetContentData = "ContentEncoding Error:" + ex.Message; } break; default: errorMessage = "[getTargetContentData] unknow or not supported this encodetype"; break; } } return myTargetContentData; } /// /// 获取原始数据,掉用此法的该版本的重载将不会会改变涉及到的staticData数据的游标,也不会对其进行运算 /// /// 原始数据数据 public string GetTargetContentData() { return contentData; } public override string ToString() { return contentData; } } } ================================================ FILE: AutoTest/ParameterizationContent/ParameterizationContentEncodingType.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.ParameterizationContent { /// /// 描述[caseParameterizationContent]使用的数据附加编码类型,0标识不进行操作,基数encode偶数decode /// [Serializable] public enum ParameterizationContentEncodingType { encode_default = 0, encode_base64 = 1, decode_base64 = 2, encode_hex16 = 3, decode_hex16 = 4, encode_hex2 = 5, decode_hex2 = 6 } } ================================================ FILE: AutoTest/ParameterizationContent/ParameterizationContentHelper.cs ================================================ using FreeHttp.AutoTest.RunTimeStaticData; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.ParameterizationContent { public static class ParameterizationContentHelper { //仅用于【caseParameterizationContent】内部 //如果没有任何valid identification,直接返回原始数据,不报错(为实现最大兼容) /// /// get the getTargetContentData in caseParameterizationContent /// /// Source Data /// ParameterList /// StaticDataList /// error Message /// public static string GetCurrentParametersData(string yourSourceData, string splitStr, ActuatorStaticDataCollection yourActuatorStaticDataCollection, NameValueCollection yourDataResultCollection, out string errorMessage) { errorMessage = null; if (yourSourceData.Contains(splitStr)) { var yourParameterList = yourActuatorStaticDataCollection.RunActuatorStaticDataKeyList; var yourStaticDataList = yourActuatorStaticDataCollection.RunActuatorStaticDataParameterList; var yourStaticDataSourceList = yourActuatorStaticDataCollection.RunActuatorStaticDataSouceList; int tempStart, tempEnd = 0; string tempKeyVaule = null; string keyParameter = null; string keyAdditionData = null; string tempVaule = null; while (yourSourceData.Contains(splitStr)) { tempStart = yourSourceData.IndexOf(splitStr); tempEnd = yourSourceData.IndexOf(splitStr, tempStart + splitStr.Length); if (tempEnd == -1) { errorMessage = string.Format("the identification not enough in Source[{0}]", yourSourceData); return yourSourceData; } tempKeyVaule = yourSourceData.Substring(tempStart + splitStr.Length, tempEnd - (tempStart + splitStr.Length)); keyParameter = TryGetParametersAdditionData(tempKeyVaule, out keyAdditionData); if (keyAdditionData != null) { keyAdditionData = GetCurrentParametersData(keyAdditionData, MyConfiguration.ParametersExecuteSplitStr, yourActuatorStaticDataCollection, yourDataResultCollection, out errorMessage); } Func DealErrorAdditionData = () => { tempVaule = "[ErrorData]"; return string.Format("ParametersAdditionData error find in the runTime data with keyParameter:[{0}] keyAdditionData:[{1}]", keyParameter, keyAdditionData); }; #region RunTimeStaticKey if (yourParameterList.Keys.Contains(keyParameter)) { //RunTimeParameter 不含有参数信息,所以不处理keyParameter tempVaule = yourParameterList[keyParameter].DataCurrent(); yourSourceData = yourSourceData.Replace(splitStr + tempKeyVaule + splitStr, tempVaule); yourDataResultCollection.MyAdd(tempKeyVaule, tempVaule); } #endregion #region RunTimeStaticParameter else if (yourStaticDataList.Keys.Contains(keyParameter)) { if (keyAdditionData == null) { tempVaule = yourStaticDataList[keyParameter].DataCurrent(); } else if (keyAdditionData == "=") { tempVaule = yourStaticDataList[keyParameter].DataCurrent(); } else if (keyAdditionData == "+") { tempVaule = yourStaticDataList[keyParameter].DataMoveNext(); } else if (keyAdditionData.StartsWith("+")) //+10 前移10 { int tempTimes; if (int.TryParse(keyAdditionData.Remove(0, 1), out tempTimes)) { if (tempTimes > 0) { for (int i = 0; i < tempTimes; i++) { yourStaticDataList[keyParameter].DataMoveNext(); } tempVaule = yourStaticDataList[keyParameter].DataCurrent(); } else { errorMessage = DealErrorAdditionData(); } } else { errorMessage = DealErrorAdditionData(); } } else { errorMessage = DealErrorAdditionData(); } yourSourceData = yourSourceData.Replace(splitStr + tempKeyVaule + splitStr, tempVaule); yourDataResultCollection.MyAdd(tempKeyVaule, tempVaule); } #endregion #region RunTimeStaticDataSource else if (yourStaticDataSourceList.Keys.Contains(keyParameter)) { if (keyAdditionData == null) { tempVaule = yourStaticDataSourceList[tempKeyVaule].DataCurrent(); } else if (keyAdditionData == "=") { tempVaule = yourStaticDataSourceList[keyParameter].DataCurrent(); } else if (keyAdditionData == "+") { tempVaule = yourStaticDataSourceList[keyParameter].DataMoveNext(); } else if (keyAdditionData.StartsWith("+")) //+10 前移10 { int tempTimes; if (int.TryParse(keyAdditionData.Remove(0, 1), out tempTimes)) { if (tempTimes > 0) { for (int i = 0; i < tempTimes; i++) { yourStaticDataSourceList[keyParameter].DataMoveNext(); } tempVaule = yourStaticDataSourceList[keyParameter].DataCurrent(); } else { errorMessage = DealErrorAdditionData(); } } else { errorMessage = DealErrorAdditionData(); } } else { tempVaule = yourStaticDataSourceList[keyParameter].GetDataVaule(keyAdditionData); if (tempVaule == null) { errorMessage = DealErrorAdditionData(); } } yourSourceData = yourSourceData.Replace(splitStr + tempKeyVaule + splitStr, tempVaule); yourDataResultCollection.MyAdd(tempKeyVaule, tempVaule); } #endregion else { tempVaule = "[ErrorData]"; errorMessage = string.Format("can not find your key [{0}] in StaticDataList", keyParameter); yourSourceData = yourSourceData.Replace(splitStr + tempKeyVaule + splitStr, tempVaule); yourDataResultCollection.MyAdd(tempKeyVaule, tempVaule); } } } return yourSourceData; } /// /// 处理ParametersData,解析静态数据名及其参数 /// /// souce parameter data 原数据 /// 返回辅助参数数据,若没有或无法解析返回null /// private static string TryGetParametersAdditionData(string souceData, out string additionData) { additionData = null; string parametersData = null; if (souceData != null) { if (souceData.EndsWith(")")) { int startIndex = souceData.LastIndexOf('('); if (startIndex > 0) { parametersData = souceData.Remove(startIndex); additionData = souceData.Substring(startIndex + 1, souceData.Length - startIndex - 2); } else { parametersData = souceData; } } else { parametersData = souceData; } } return parametersData; } } public class MyConfiguration { //◎●◐◑◒◓◔◕◖◗▼▲ public static string ParametersDataSplitStr = "*#"; //参数化数据分隔符 public static string ParametersExecuteSplitStr = "`"; //参数再运算风格符 public static string CaseShowTargetAndContent = "➤"; public static string CaseShowCaseNodeStart = "◆"; public static string CaseShowJumpGotoNode = "▼"; public static string CaseShowGotoNodeStart = "▲"; } } ================================================ FILE: AutoTest/ParameterizationPick/ParameterPick.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.ParameterizationPick { [Serializable] [DataContract] public class ParameterPick { [DataMember] public string ParameterName { get; set; } [DataMember] public ParameterPickType PickType { get; set; } [DataMember] public ParameterPickRange PickRange { get; set; } [DataMember] public string PickTypeAdditional { get; set; } [DataMember] public string PickTypeExpression { get; set; } public override string ToString() { return string.Format("get [{0}] from [{1}] by [{2} grep]({3}) with [{4}]", ParameterName, PickRange.ToString(), PickType.ToString(), PickTypeAdditional, PickTypeExpression); } } public class ParameterPickInfo { public ParameterPickType PickType{get;private set;} public List> PickTypeAdditionalList { get; private set; } public bool Editable { get; private set; } public Func ParameterPickFunc { get; private set; } public ParameterPickInfo(ParameterPickType pickType, List> pickTypeAdditionalList, bool editable, Func parameterPickFunc) { PickType = pickType; PickTypeAdditionalList = pickTypeAdditionalList; Editable = editable; ParameterPickFunc = parameterPickFunc; } } public class ParameterPickTypeEngine { public static Dictionary dictionaryParameterPickFunc = new Dictionary() { {ParameterPickType.Str , new ParameterPickInfo(ParameterPickType.Str,new List>(){new KeyValuePair("str-str","StartString-EndString"),new KeyValuePair("str-len","StartString-StringLength"),new KeyValuePair("index-len","StartIndex-StringLength")},false,ParameterPickHelper.ParameterPickStr)}, {ParameterPickType.Regex , new ParameterPickInfo(ParameterPickType.Regex,new List>(){new KeyValuePair("1","RegexExpression"),new KeyValuePair("0","RegexExpression")},true,ParameterPickHelper.ParameterPickRegex)}, {ParameterPickType.Xml , new ParameterPickInfo(ParameterPickType.Xml,new List>(){new KeyValuePair("1","XpathExpression"),new KeyValuePair("0","XpathExpression")},true,ParameterPickHelper.ParameterPickXml)} }; } } ================================================ FILE: AutoTest/ParameterizationPick/ParameterPickHelper.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Xml; namespace FreeHttp.AutoTest.ParameterizationPick { public class ParameterPickHelper { /// /// 使用xpth查找xml匹配项 /// /// xpth表达式 (如//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置) /// 数据源 /// 返回结果(结果为XmlNodeList的InnerXml字符串数组) public static string[] PickXmlParameter(string yourTarget, string yourSouce) { XmlDocument xml = new XmlDocument(); try { xml.LoadXml(yourSouce); } catch (Exception) { return null; } XmlNodeList tempNodeList; try { tempNodeList = xml.SelectNodes("//" + yourTarget); } catch (Exception) { return null; } if (tempNodeList.Count > 0) { string[] backStrs = new string[tempNodeList.Count]; for (int i = 0; i < tempNodeList.Count; i++) { backStrs[i] = tempNodeList[i].InnerXml; } return backStrs; } return null; } public static string[] PickRegexParameter(string yourTarget, string yourSouce) { MatchCollection mc; try { mc = Regex.Matches(yourSouce, yourTarget); } catch (Exception ) { return null; } if (mc.Count > 0) { string[] backStrs = new string[mc.Count]; for (int i = 0; i < mc.Count; i++) { backStrs[i] = mc[i].Value; } return backStrs; } return null; } public static string PickStrParameter(int yourStrStart, int yourStrLen, string yourSouce) { if (yourStrStart < 0 || yourStrLen < 0) { return null; } if (yourSouce.Length >= yourStrStart + yourStrLen) { if (yourStrLen==0) { return yourSouce.Remove(0, yourStrStart); } return yourSouce.Substring(yourStrStart, yourStrLen); } return null; } public static string PickStrParameter(string yourTarget, int yourStrLen, string yourSouce) { if (yourStrLen < 0) { return null; } if (yourSouce.Contains(yourTarget)) { string tempPickStr; int tempStart = yourSouce.IndexOf(yourTarget) + yourTarget.Length; tempPickStr = yourSouce.Remove(0, tempStart); if (tempPickStr.Length > yourStrLen) { if (yourStrLen != 0) { tempPickStr = tempPickStr.Remove(yourStrLen); } } return tempPickStr; } return null; } public static string PickStrParameter(string yourTarget, string yourStrEnd, string yourSouce) { if (yourSouce.Contains(yourTarget)) { string tempPickStr; int tempStart = yourSouce.IndexOf(yourTarget) + yourTarget.Length; tempPickStr = yourSouce.Remove(0, tempStart); if (tempPickStr.Contains(yourStrEnd)) { int tempEnd = tempPickStr.IndexOf(yourStrEnd); tempPickStr = tempPickStr.Remove(tempEnd); return tempPickStr; } } return null; } public static bool GetStrPickData(string yourSouce, out string yourFrontTarget, out string yourBackStr) { yourFrontTarget = null; yourBackStr = null; if (yourSouce.Contains("-")) { yourFrontTarget = yourSouce.Remove(yourSouce.LastIndexOf("-")); yourBackStr = yourSouce.Remove(0, yourSouce.LastIndexOf("-") + 1); return true; } else { yourFrontTarget = yourSouce; } return false; } public static string ParameterPickStr(string sourceStr,string pickExpression,string pickExpressionAdditional) { if (string.IsNullOrEmpty(sourceStr) || string.IsNullOrEmpty(pickExpression) || string.IsNullOrEmpty(pickExpressionAdditional)) { throw new Exception("your ParameterPick data is null or empty"); } string frontStr; string backStr; int frontIndex; int strLen; if (!GetStrPickData(pickExpression, out frontStr, out backStr)) { throw new Exception( string.Format("this Expressions error :{0}", "it should contain '-'")); } if (string.IsNullOrEmpty(frontStr) || string.IsNullOrEmpty(backStr)) { throw new Exception( string.Format("this Expressions error :{0}", "the '-' position is illegal")); } switch(pickExpressionAdditional) { case "str-str": return PickStrParameter(frontStr, backStr, sourceStr); case "str-len": if(!int.TryParse(backStr,out strLen)) { throw new Exception(string.Format("this Expressions error :{0}", "the len should be a int value")); } return PickStrParameter(frontStr, strLen, sourceStr); case "index-len": if (!int.TryParse(backStr, out strLen) ) { throw new Exception(string.Format("this Expressions error :{0}", "the len should be a int value")); } if(!int.TryParse(frontStr, out frontIndex)) { throw new Exception(string.Format("this Expressions error :{0}", "the index should be a int value")); } return PickStrParameter(frontIndex, strLen, sourceStr); default: throw new Exception("your ParameterPick data is null or empty"); } } public static string ParameterPickXml(string sourceStr, string pickExpression, string pickExpressionAdditional) { if (string.IsNullOrEmpty(sourceStr) || string.IsNullOrEmpty(pickExpression) || string.IsNullOrEmpty(pickExpressionAdditional)) { throw new Exception("your ParameterPick data is null or empty"); } int returnIndex; if (!int.TryParse(pickExpressionAdditional, out returnIndex)) { throw new Exception("this PickTypeAdditional should be a number"); } if (returnIndex<0) { throw new Exception("this PickTypeAdditional should greater than 0"); } string[] returnArray = PickXmlParameter(pickExpressionAdditional, sourceStr); if (returnArray==null) { return null; } if (returnIndex==0) { return string.Join(",", returnArray); } else if (returnIndex > returnArray.Length) { return null; } else { return returnArray[returnIndex - 1]; } } public static string ParameterPickRegex(string sourceStr, string pickExpression, string pickExpressionAdditional) { { if (string.IsNullOrEmpty(sourceStr) || string.IsNullOrEmpty(pickExpression) || string.IsNullOrEmpty(pickExpressionAdditional)) { throw new Exception("your ParameterPick data is null or empty"); } int returnIndex; if (!int.TryParse(pickExpressionAdditional, out returnIndex)) { throw new Exception("this PickTypeAdditional should be a number"); } if (returnIndex < 0) { throw new Exception("this PickTypeAdditional should greater than 0"); } string[] returnArray = PickRegexParameter(pickExpression, sourceStr); if (returnArray == null) { return null; } if (returnIndex == 0) { return string.Join(",", returnArray); } else if (returnIndex > returnArray.Length) { return null; } else { return returnArray[returnIndex - 1]; } } } public static string CheckParameterPickExpression(ParameterPick yourParameterPick) { if (string.IsNullOrEmpty(yourParameterPick.PickTypeExpression)) { return "your Expression is empty"; } switch (yourParameterPick.PickType) { case ParameterPickType.Regex: int tempAdditionalIndex; if (int.TryParse(yourParameterPick.PickTypeAdditional, out tempAdditionalIndex)) { if (tempAdditionalIndex < 0) { return "this PickTypeAdditional should greater than 0"; } } else { return "this PickTypeAdditional should be a number"; } try { System.Text.RegularExpressions.Regex.Matches("", yourParameterPick.PickTypeExpression); } catch (Exception ex) { return string.Format("this Regex Expressions error :{0}", ex.Message); } break; case ParameterPickType.Xml: if (int.TryParse(yourParameterPick.PickTypeAdditional, out tempAdditionalIndex)) { if (tempAdditionalIndex < 0) { return "this PickTypeAdditional should greater than 0"; } } else { return "this PickTypeAdditional should be a number"; } try { XmlDocument xml = new XmlDocument(); xml.LoadXml(""); xml.SelectSingleNode(yourParameterPick.PickTypeExpression); } catch (Exception ex) { return string.Format("this Xpath Expressions error :{0}", ex.Message); } break; case ParameterPickType.Str: string frontStr; string backStr; if (!GetStrPickData(yourParameterPick.PickTypeExpression, out frontStr, out backStr)) { return string.Format("this Expressions error :{0}", "it should contain '-'"); } if (string.IsNullOrEmpty(frontStr) || string.IsNullOrEmpty(backStr)) { return string.Format("this Expressions error :{0}", "the '-' position is illegal"); } if (yourParameterPick.PickTypeAdditional == "str-str") { } else if (yourParameterPick.PickTypeAdditional == "str-len") { if (!int.TryParse(backStr, out tempAdditionalIndex)) { return string.Format("this Expressions error :{0}", "the len should be a int value"); } } else if (yourParameterPick.PickTypeAdditional == "index-len") { if (!int.TryParse(frontStr, out tempAdditionalIndex)) { return string.Format("this Expressions error :{0}", "the index should be a int value"); } if (!int.TryParse(backStr, out tempAdditionalIndex)) { return string.Format("this Expressions error :{0}", "the len should be a int value"); } } break; default: return "unknow ParameterPickType"; } return null; } } } ================================================ FILE: AutoTest/ParameterizationPick/ParameterPickType.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.ParameterizationPick { [Serializable] public enum ParameterPickType { Str, Xml, Regex } [Serializable] public enum ParameterPickRange { Line, Heads, Entity } } ================================================ FILE: AutoTest/RunTimeStaticData/ActuatorStaticDataCollection.cs ================================================ using FreeHttp.AutoTest.RunTimeStaticData.MyStaticData; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData { /// /// ActuatorStaticData 集合 /// [DataContract] //[Serializable] 默认序列化公开字段及属性,且要求其有公开的Set,用[DataContract]指没有这个限制,使用 [DataMember(Name = "ID")] / [DataMember] 标记成员 [KnownType(typeof(MyStaticDataValue)), KnownType(typeof(MyStaticDataIndex)), KnownType(typeof(MyStaticDataList)), KnownType(typeof(MyStaticDataLong)), KnownType(typeof(MyStaticDataNowTime)), KnownType(typeof(MyStaticDataRandomStr)), KnownType(typeof(MyStaticDataSourceCsv)), KnownType(typeof(MyStaticDataStrIndex))] public class ActuatorStaticDataCollection : IDisposable, ICloneable ,IEnumerable { public class ChangeDataEventArgs : EventArgs { public bool IsAddOrDel { get; set; } public ChangeDataEventArgs(bool isAddOrDel) { IsAddOrDel = isAddOrDel; } } [DataMember] public bool IsAllCollectionKeyUnique { get; private set; } //3组数据源Dictionary都分别实现了_version版本控制,这里可以不用单独实现了 private int _version; /// /// is all staticdata list is empty in ActuatorStaticDataCollection /// public bool IsEmpty { get { if (runActuatorStaticDataKeyList != null && runActuatorStaticDataKeyList.Count > 0) return false; if (runActuatorStaticDataParameterList != null && runActuatorStaticDataParameterList.Count > 0) return false; if (runActuatorStaticDataSouceList != null && runActuatorStaticDataSouceList.Count > 0) return false; return true; } } public int Count { get { int tempCount = 0; if (runActuatorStaticDataKeyList != null) tempCount += runActuatorStaticDataKeyList.Count; if (runActuatorStaticDataParameterList != null) tempCount += runActuatorStaticDataParameterList.Count; if (runActuatorStaticDataSouceList != null) tempCount += runActuatorStaticDataSouceList.Count; return tempCount; } } /// /// RunTimeParameter List /// [DataMember] private Dictionary runActuatorStaticDataKeyList; /// /// RunTimeStaticData List /// [DataMember] private Dictionary runActuatorStaticDataParameterList; /// /// RunTimeDataSouce List /// [DataMember] private Dictionary runActuatorStaticDataSouceList; private readonly object padlock = new object(); public ActuatorStaticDataCollection() { runActuatorStaticDataKeyList = new Dictionary(); runActuatorStaticDataParameterList = new Dictionary(); runActuatorStaticDataSouceList = new Dictionary(); IsAllCollectionKeyUnique = false; } public ActuatorStaticDataCollection(bool isAllCollectionKeyUnique):this() { IsAllCollectionKeyUnique = isAllCollectionKeyUnique; } public ActuatorStaticDataCollection(Dictionary yourActuatorParameterList, Dictionary yourActuatorStaticDataList, Dictionary yourActuatorStaticDataSouceList) { runActuatorStaticDataKeyList = yourActuatorParameterList; runActuatorStaticDataParameterList = yourActuatorStaticDataList; runActuatorStaticDataSouceList = yourActuatorStaticDataSouceList; IsAllCollectionKeyUnique = false; } //public event EventHandler OnChangeCollection; public delegate void ChangeCollectionEventHandler(object sender, ChangeDataEventArgs e); public event ChangeCollectionEventHandler OnChangeCollection; private void OnListChanged(bool isAddOrDel) { _version++; if (OnChangeCollection!=null) { this.OnChangeCollection(this, new ChangeDataEventArgs(isAddOrDel)); } } /// /// Get RunActuatorStaticDataKeyList (do not modify this dictionary yourselves, you can call /// [AddStaticDataKey][AddStaticDataParameter][AddStaticDataParameter][RemoveStaticData][SetStaticDataValue]do that) /// public Dictionary RunActuatorStaticDataKeyList { get { return runActuatorStaticDataKeyList; } } /// /// Get RunActuatorStaticDataParameterList (do not modify this dictionary yourselves, you can call /// [AddStaticDataKey][AddStaticDataParameter][AddStaticDataParameter][RemoveStaticData][SetStaticDataValue]do that) /// public Dictionary RunActuatorStaticDataParameterList { get { return runActuatorStaticDataParameterList; } } /// /// Get RunActuatorStaticDataSouceList (do not modify this dictionary yourselves, you can call /// [AddStaticDataKey][AddStaticDataParameter][AddStaticDataParameter][RemoveStaticData][SetStaticDataValue]do that) /// public Dictionary RunActuatorStaticDataSouceList { get { return runActuatorStaticDataSouceList; } } private object IsHasSameKey(string key, int ignoreListIndex) { if (runActuatorStaticDataKeyList.ContainsKey(key) && ignoreListIndex != 1) { return runActuatorStaticDataKeyList; } if (runActuatorStaticDataParameterList.ContainsKey(key) && ignoreListIndex != 2) { return runActuatorStaticDataParameterList; } if (runActuatorStaticDataSouceList.ContainsKey(key) && ignoreListIndex != 3) { return runActuatorStaticDataSouceList; } return null; } /// /// Is the StaticDataCollection has th same key name /// /// your Key /// is has public bool IsHaveSameKey(string yourKey) { return (IsHasSameKey(yourKey, 0) != null); } /// /// Add Data into runActuatorStaticDataKeyList (if DataParameter or DataSouce has same key retrun false , if DataKey has same key cover the vaule) /// /// key /// vaule /// is success [MethodImplAttribute(MethodImplOptions.Synchronized)] public bool AddStaticDataKey(string key, IRunTimeStaticData vaule) { //if (!(vaule is MyStaticDataValue)) //{ // return false; //} if (IsHasSameKey(key, IsAllCollectionKeyUnique?0:1) != null) { if (!RemoveStaticData(key, false)) { return false; } } runActuatorStaticDataKeyList.MyAdd(key, vaule); OnListChanged(true); return true; } /// /// Add Data into runActuatorStaticDataParameterList (if DataKey or DataSouce has same key retrun false , if DataParameter has same key cover the vaule) /// /// key /// vaule /// is success [MethodImplAttribute(MethodImplOptions.Synchronized)] public bool AddStaticDataParameter(string key, IRunTimeStaticData vaule) { if (IsHasSameKey(key, IsAllCollectionKeyUnique ? 0 : 2) != null) { if (!RemoveStaticData(key, false)) { return false; } } runActuatorStaticDataParameterList.MyAdd(key, vaule); OnListChanged(true); return true; } /// /// Add Data into runActuatorStaticDataSouceList (if DataKey or DataParameter has same key retrun false , if DataSouce has same key cover the vaule) /// /// key /// vaule /// is success [MethodImplAttribute(MethodImplOptions.Synchronized)] public bool AddStaticDataSouce(string key, IRunTimeDataSource vaule) { if (IsHasSameKey(key, IsAllCollectionKeyUnique ? 0 : 3) != null) { if (!RemoveStaticData(key, false)) { return false; } } runActuatorStaticDataSouceList.MyAdd(key, vaule); OnListChanged(true); return true; } /// /// Add Data by CaseStaticDataType with vaule /// /// key /// vaule /// [MethodImplAttribute(MethodImplOptions.Synchronized)] public bool AddStaticData(string key, IRunTimeStaticData vaule) { switch(vaule.RunTimeStaticDataType) { case CaseStaticDataType.caseStaticData_vaule: return AddStaticDataKey(key, vaule); case CaseStaticDataType.caseStaticData_index: case CaseStaticDataType.caseStaticData_long: case CaseStaticDataType.caseStaticData_random: case CaseStaticDataType.caseStaticData_time: case CaseStaticDataType.caseStaticData_list: case CaseStaticDataType.caseStaticData_strIndex: return AddStaticDataParameter(key, vaule); case CaseStaticDataType.caseStaticData_csv: case CaseStaticDataType.caseStaticData_mysql: case CaseStaticDataType.caseStaticData_redis: IRunTimeDataSource tempDataSource = vaule as IRunTimeDataSource; if (tempDataSource == null) return false; return AddStaticDataSouce(key, tempDataSource); default: throw new NotSupportedException("nukonw CaseStaticDataType"); } } /// /// Remove Static Data in any list (if there not has any same key retrun false) /// /// key or Regex /// is use Regex /// is success [MethodImplAttribute(MethodImplOptions.Synchronized)] public bool RemoveStaticData(string key, bool isRegex) { if (!isRegex) { var tempDataList = IsHasSameKey(key, 0); if (tempDataList == null) { return false; } else if (tempDataList == runActuatorStaticDataKeyList) { runActuatorStaticDataKeyList.Remove(key); } else if (tempDataList == runActuatorStaticDataParameterList) { runActuatorStaticDataParameterList.Remove(key); } else if (tempDataList == runActuatorStaticDataSouceList) { runActuatorStaticDataSouceList.Remove(key); } else { //ErrorLog.PutInLog(string.Format("error to [RemoveStaticData] in ActuatorStaticDataCollection the key is {0} ", key)); return false; } } else { try { bool isFindAndRegexKey = false; System.Text.RegularExpressions.Regex sr; sr = new System.Text.RegularExpressions.Regex(key, System.Text.RegularExpressions.RegexOptions.None); List dataToDel = new List(); foreach (var tempKey in runActuatorStaticDataKeyList.Keys) { if (sr.IsMatch(tempKey)) { dataToDel.Add(tempKey); } } foreach (string tempKey in dataToDel) { runActuatorStaticDataKeyList.Remove(tempKey); } if (dataToDel.Count > 0) { isFindAndRegexKey = true; dataToDel.Clear(); } foreach (var tempKey in runActuatorStaticDataParameterList.Keys) { if (sr.IsMatch(tempKey)) { dataToDel.Add(tempKey); } } foreach (string tempKey in dataToDel) { runActuatorStaticDataParameterList.Remove(tempKey); } if (dataToDel.Count > 0) { isFindAndRegexKey = true; dataToDel.Clear(); } foreach (var tempKey in runActuatorStaticDataSouceList.Keys) { if (sr.IsMatch(tempKey)) { dataToDel.Add(tempKey); } } foreach (string tempKey in dataToDel) { runActuatorStaticDataSouceList.Remove(tempKey); } if (dataToDel.Count > 0) { isFindAndRegexKey = true; dataToDel.Clear(); } if (!isFindAndRegexKey) { return false; } } catch (Exception ex) { //ErrorLog.PutInLog(ex); return false; } } OnListChanged(true); return true; } /// /// set or change data in any list /// /// key /// config Vaule /// is success [MethodImplAttribute(MethodImplOptions.Synchronized)] public bool SetStaticDataValue(string key, string configVaule) { var tempDataList = GetStaticData(key, 0); if (tempDataList == null) { return false; } if (tempDataList.DataSet(configVaule)) { OnListChanged(false); return true; } return false; } public IRunTimeStaticData GetStaticData(string key ,int GetListIndex) { if (runActuatorStaticDataKeyList.ContainsKey(key) && (GetListIndex == 1 || GetListIndex == 0)) { return runActuatorStaticDataKeyList[key]; } if (runActuatorStaticDataParameterList.ContainsKey(key) && (GetListIndex == 1 || GetListIndex == 0)) { return runActuatorStaticDataParameterList[key]; } if (runActuatorStaticDataSouceList.ContainsKey(key) && (GetListIndex == 1 || GetListIndex == 0)) { return runActuatorStaticDataSouceList[key]; } return null; } public IRunTimeStaticData this[string key] { get { return GetStaticData(key, 0); } set { var tempDataList = IsHasSameKey(key, 0); if (tempDataList == null) { throw new Exception("ActuatorStaticDataCollection do not have this key"); } else if (tempDataList == runActuatorStaticDataKeyList ) { if (value is MyStaticDataValue) { runActuatorStaticDataKeyList[key] = value; } else { throw new Exception("this StaticData must be a MyStaticDataValue"); } } else if (tempDataList == runActuatorStaticDataParameterList) { runActuatorStaticDataParameterList[key] = value; } else if (tempDataList == runActuatorStaticDataSouceList ) { if (value is IRunTimeDataSource) { runActuatorStaticDataSouceList[key] = (IRunTimeDataSource)value; } else { throw new Exception("this StaticData must be a IRunTimeDataSource"); } } else { throw new Exception("nuknow DataSource"); } OnListChanged(false); } } public IEnumerator GetEnumerator() { return new ActuatorStaticDataEnum(this); } public object Clone() { return new ActuatorStaticDataCollection(runActuatorStaticDataKeyList.MyDeepClone(), runActuatorStaticDataParameterList.MyDeepClone(), runActuatorStaticDataSouceList.MyDeepClone()); } public void Dispose() { runActuatorStaticDataKeyList.Clear(); runActuatorStaticDataParameterList.Clear(); runActuatorStaticDataSouceList.Clear(); } public class ActuatorStaticDataEnum : IEnumerator { private Dictionary _staticDataKeyList; private Dictionary _staticDataParameterList; private Dictionary _staticDataSouceList; private int _index; private readonly int _version; private KeyValuePair _current; private IEnumerator innerEnumerator = null; internal ActuatorStaticDataEnum(ActuatorStaticDataCollection actuatorStaticDataCollection) { _staticDataKeyList = actuatorStaticDataCollection.runActuatorStaticDataKeyList; _staticDataParameterList = actuatorStaticDataCollection.runActuatorStaticDataParameterList; _staticDataSouceList = actuatorStaticDataCollection.runActuatorStaticDataSouceList; _index = 0; _version = actuatorStaticDataCollection._version; _current = default; } object IEnumerator.Current { get { return Current; } } public KeyValuePair Current => _current; public bool MoveNext() { //if (_version != _actuatorStaticDataCollection._version) //{ // ThrowHelper.ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion(); //} if (_index == 0) { innerEnumerator = _staticDataKeyList.GetEnumerator(); _index = -1; } else if (_index == 1) { innerEnumerator = _staticDataParameterList.GetEnumerator(); _index = -2; } else if (_index == 2) { innerEnumerator = _staticDataSouceList.GetEnumerator(); _index = -3; } else if(_index == 3) // end { _current = default; return false; } if (_index < -2 && _index > 2) { throw new Exception("unkonw StaticData in [MoveNext]"); } if (innerEnumerator.MoveNext()) { if(_index == -3) { KeyValuePair tempDataSourceKvp = (KeyValuePair)innerEnumerator.Current; _current = new KeyValuePair(tempDataSourceKvp.Key, tempDataSourceKvp.Value); } else { _current = (KeyValuePair)innerEnumerator.Current; } return true; } else { _index = Math.Abs(_index); return MoveNext(); } } public void Reset() { _index = 0; _current = default; } } } } ================================================ FILE: AutoTest/RunTimeStaticData/CaseRunTimeDataTypeEngine.cs ================================================ #define ALLOW_CSV_EMPTY using FreeHttp.AutoTest.RunTimeStaticData.MyStaticData; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData { /// /// 如果您想要添加新类型的【RunTimeStaticData】请在此处添加解释器,并为它添加相应的继承于【IRunTimeStaticData】存储的结构 /// 然后在CaseStaticDataType枚举中直接新增自己的类型(请与原有格式保持一致),最后您还需要在执行器【LoadScriptRunTime】函数中添加自己的分支 /// public class CaseRunTimeDataTypeEngine { #region TypeDictionary public static Dictionary> dictionaryStaticDataAnnotation = new Dictionary>() { {CaseStaticDataType.caseStaticData_vaule,new List(){"Key-Value","value","value","this value the meaning is the key","provide a key value list like dictionary"}}, {CaseStaticDataType.caseStaticData_index,new List(){"Index","start-end-step","1-1000-2","start: the start of the number \nend: the end of the number (the max is 2147483647)\nstep: when get next value the number will add step (default is 1)","provide a number index ,you can get a increase index each time"}}, {CaseStaticDataType.caseStaticData_long,new List(){"LongIndex","start-end-step","1-1000-2","start: the start of the number \nend: the end of the number (the max is 9223372036854775807)\nstep: when get next value the number will add step (default is 1)","provide a number long index ,you can get a increase index each time"}}, {CaseStaticDataType.caseStaticData_strIndex,new List(){"StringIndex","start-end-step","0001-1000-2","start: the start of the number string (the lengh should equal to the end lengh)\nend: the end of the number sting (the max is 9223372036854775807)\nstep: when get next value the number will add step (default is 1)","provide a number string index ,you can keep the same lengh of the string each time"}}, {CaseStaticDataType.caseStaticData_time,new List(){"Time","DateTimeFormatInfo","yyyy-MM-ddTHH:mm:ss","DateTimeFormatInfo: the format for data time (find DateTimeFormatInfo in dotnet doc) \n[another expression] a int number mean timestamp ,10000 is microsecond timestamp;10000000 is second timestamp ","provide a data time string with your format"}}, {CaseStaticDataType.caseStaticData_random,new List(){"Random","len-type","10-1","len: the lengh of the random string\ntype: the type of random mode (0 is all the visible asc2 ; 1 is only number ; 2 is letter in upper ; 3 is letter in lower ; 4 is the special character ; 5 is all the letters ; 6 is all the letters or numbers)(default is 1)","provide a random strng with your mode"}}, {CaseStaticDataType.caseStaticData_list,new List(){"List","v1,v2,v3,v4-mode","ab,c,de-1","v1,v2,v3: the value of the list (the value list segmentation by ,) \nmode: the mode read 1 is read by order ; 2 is read by random (default is 1)","provide a list value ,you can get it by order or random"}}, {CaseStaticDataType.caseStaticData_csv,new List(){"CSV","path-encode","csvdatasouce.csv-65001","path: the file path (start with @ means absolute path) \nencode: the encode of the file (default is 65001) \n[another expression] start with'*' and followed by ColumnCount-RowCount (like *10-10 mean creat a 10*10 empty csv data source)","provide a data souce form csv file ,you can get it by order or location"}} }; /// /// 参数化数据类型映射表 /// public static Dictionary dictionaryStaticDataTypeClass = new Dictionary() { { CaseStaticDataType.caseStaticData_vaule, CaseStaticDataClass.caseStaticDataKey }, { CaseStaticDataType.caseStaticData_index, CaseStaticDataClass.caseStaticDataParameter }, { CaseStaticDataType.caseStaticData_long, CaseStaticDataClass.caseStaticDataParameter}, { CaseStaticDataType.caseStaticData_list, CaseStaticDataClass.caseStaticDataParameter}, { CaseStaticDataType.caseStaticData_time, CaseStaticDataClass.caseStaticDataParameter}, { CaseStaticDataType.caseStaticData_random, CaseStaticDataClass.caseStaticDataParameter}, { CaseStaticDataType.caseStaticData_csv, CaseStaticDataClass.caseStaticDataSource}, { CaseStaticDataType.caseStaticData_mysql, CaseStaticDataClass.caseStaticDataSource}, { CaseStaticDataType.caseStaticData_redis, CaseStaticDataClass.caseStaticDataSource}, {CaseStaticDataType.caseStaticData_strIndex, CaseStaticDataClass.caseStaticDataParameter}}; public static Dictionary> dictionaryStaticDataTypeSource = new Dictionary>() { {CaseStaticDataClass.caseStaticDataKey,new List(){CaseStaticDataType.caseStaticData_vaule}}, {CaseStaticDataClass.caseStaticDataParameter,new List(){CaseStaticDataType.caseStaticData_index,CaseStaticDataType.caseStaticData_list,CaseStaticDataType.caseStaticData_long,CaseStaticDataType.caseStaticData_random,CaseStaticDataType.caseStaticData_strIndex,CaseStaticDataType.caseStaticData_time}}, {CaseStaticDataClass.caseStaticDataSource,new List(){CaseStaticDataType.caseStaticData_csv}} }; //参数化数据处理函数委托 public delegate bool GetStaticDataAction(out T yourStaticData, out string errorMes, string yourFormatData) where T : IRunTimeStaticData; /// /// CaseStaticDataType数据与处理函数映射表 /// public static Dictionary> dictionaryStaticDataParameterAction = new Dictionary>() { { CaseStaticDataType.caseStaticData_index, new GetStaticDataAction(CaseRunTimeDataTypeEngine.GetIndexStaticData) } , { CaseStaticDataType.caseStaticData_strIndex, new GetStaticDataAction(CaseRunTimeDataTypeEngine.GetStrIndexStaticData) } , { CaseStaticDataType.caseStaticData_long, new GetStaticDataAction(CaseRunTimeDataTypeEngine.GetLongStaticData) } , { CaseStaticDataType.caseStaticData_list, new GetStaticDataAction(CaseRunTimeDataTypeEngine.GetListStaticData) } , { CaseStaticDataType.caseStaticData_time, new GetStaticDataAction(CaseRunTimeDataTypeEngine.GetTimeStaticData) } , { CaseStaticDataType.caseStaticData_random, new GetStaticDataAction(CaseRunTimeDataTypeEngine.GetRandomStaticData) } }; /// /// CaseStaticDataType数据与处理函数映射表 /// public static Dictionary> dictionaryStaticDataSourceAction = new Dictionary>() { { CaseStaticDataType.caseStaticData_csv, new GetStaticDataAction(CaseRunTimeDataTypeEngine.GetCsvStaticDataSource) } }; #endregion #region IRunTimeStaticData public static bool GetIndexStaticData(out IRunTimeStaticData yourStaticData, out string errorMes, string yourFormatData) { try { string[] tempStartEnd; tempStartEnd = yourFormatData.Split('-'); if (tempStartEnd.Length == 2) { yourStaticData = new MyStaticDataIndex(int.Parse(tempStartEnd[0]), int.Parse(tempStartEnd[1]), 1, yourFormatData); errorMes = null; return true; } if (tempStartEnd.Length == 3) { yourStaticData = new MyStaticDataIndex(int.Parse(tempStartEnd[0]), int.Parse(tempStartEnd[1]), int.Parse(tempStartEnd[2]), yourFormatData); errorMes = null; return true; } else { yourStaticData = new MyStaticDataIndex(0, 2147483647, 1, yourFormatData); errorMes = "find error data[myStaticDataIndex] in RunTimeStaticData - ScriptRunTime :(find error number of parameters)"; } } catch (Exception) { yourStaticData = new MyStaticDataIndex(0, 2147483647, 1, yourFormatData); errorMes = "find error data[myStaticDataIndex] in RunTimeStaticData - ScriptRunTime "; } return false; } public static bool GetStrIndexStaticData(out IRunTimeStaticData yourStaticData, out string errorMes, string yourFormatData) { try { string[] tempStartEnd; tempStartEnd = yourFormatData.Split('-'); if (tempStartEnd.Length == 2) { if (tempStartEnd[0].Length == tempStartEnd[0].Length) { yourStaticData = new MyStaticDataStrIndex(long.Parse(tempStartEnd[0]), long.Parse(tempStartEnd[1]), 1, tempStartEnd[0].Length, yourFormatData); errorMes = null; return true; } else { yourStaticData = new MyStaticDataStrIndex(0, 9223372036854775807, 1, 19, yourFormatData); errorMes = "find error data[myStaticDataStrIndex] with error len in RunTimeStaticData - ScriptRunTime "; } } else if (tempStartEnd.Length == 3) { if (tempStartEnd[0].Length == tempStartEnd[0].Length) { yourStaticData = new MyStaticDataStrIndex(long.Parse(tempStartEnd[0]), long.Parse(tempStartEnd[1]), long.Parse(tempStartEnd[2]), tempStartEnd[0].Length, yourFormatData); errorMes = null; return true; } else { yourStaticData = new MyStaticDataStrIndex(0, 9223372036854775807, 1, 19, yourFormatData); errorMes = "find error data[myStaticDataStrIndex] with error len in RunTimeStaticData - ScriptRunTime "; } } else { yourStaticData = new MyStaticDataStrIndex(0, 9223372036854775807, 1, 19, yourFormatData); errorMes = "find error data[myStaticDataLong] in RunTimeStaticData - ScriptRunTime :(find error number of parameters)"; } } catch (Exception) { yourStaticData = new MyStaticDataStrIndex(0, 9223372036854775807, 1, 19, yourFormatData); errorMes = "find error data[myStaticDataLong] in RunTimeStaticData - ScriptRunTime "; } return false; } public static bool GetLongStaticData(out IRunTimeStaticData yourStaticData, out string errorMes, string yourFormatData) { try { string[] tempStartEnd; tempStartEnd = yourFormatData.Split('-'); if (tempStartEnd.Length == 2) { yourStaticData = new MyStaticDataLong(long.Parse(tempStartEnd[0]), long.Parse(tempStartEnd[1]), 1, yourFormatData); errorMes = null; return true; } else if (tempStartEnd.Length == 3) { yourStaticData = new MyStaticDataLong(long.Parse(tempStartEnd[0]), long.Parse(tempStartEnd[1]), long.Parse(tempStartEnd[2]), yourFormatData); errorMes = null; return true; } else { yourStaticData = new MyStaticDataLong(0, 9223372036854775807, 1, yourFormatData); errorMes = "find error data[myStaticDataLong] in RunTimeStaticData - ScriptRunTime :(find error number of parameters)"; } } catch (Exception) { yourStaticData = new MyStaticDataLong(0, 9223372036854775807, 1, yourFormatData); errorMes = "find error data[myStaticDataLong] in RunTimeStaticData - ScriptRunTime "; } return false; } public static bool GetTimeStaticData(out IRunTimeStaticData yourStaticData, out string errorMes, string yourFormatData) { errorMes = null; try { System.DateTime.Now.ToString(yourFormatData); } catch { errorMes = "find error data[myStaticDataNowTime] in RunTimeStaticData - ScriptRunTime "; yourStaticData = new MyStaticDataNowTime("", yourFormatData); return false; } yourStaticData = new MyStaticDataNowTime(yourFormatData, yourFormatData); return true; } public static bool GetRandomStaticData(out IRunTimeStaticData yourStaticData, out string errorMes, string yourFormatData) { try { string[] tempStartEnd; tempStartEnd = yourFormatData.Split('-'); if (tempStartEnd.Length < 2) { yourStaticData = new MyStaticDataRandomStr(10, 0, yourFormatData); errorMes = "find error data[myStaticDataRandomNumber] in RunTimeStaticData - ScriptRunTime "; } else { yourStaticData = new MyStaticDataRandomStr(int.Parse(tempStartEnd[0]), int.Parse(tempStartEnd[1]), yourFormatData); errorMes = null; return true; } } catch (Exception) { yourStaticData = new MyStaticDataRandomStr(10, 0, yourFormatData); errorMes = "find error data[myStaticDataRandomNumber] in RunTimeStaticData - ScriptRunTime "; } return false; } public static bool GetListStaticData(out IRunTimeStaticData yourStaticData, out string errorMes, string yourFormatData) { try { if (yourFormatData.EndsWith("-1")) { yourFormatData = yourFormatData.Remove(yourFormatData.Length - 2); yourStaticData = new MyStaticDataList(yourFormatData, false, yourFormatData); } else if (yourFormatData.EndsWith("-2")) { yourFormatData = yourFormatData.Remove(yourFormatData.Length - 2); yourStaticData = new MyStaticDataList(yourFormatData, true, yourFormatData); } else { yourStaticData = new MyStaticDataList(yourFormatData, false, yourFormatData); } errorMes = null; return true; } catch (Exception) { yourStaticData = new MyStaticDataList("", false, yourFormatData); errorMes = "find error data[myStaticDataList] in RunTimeStaticData - ScriptRunTime "; } return false; } #endregion #region IRunTimeDataSource public static bool GetCsvStaticDataSource(out IRunTimeDataSource yourStaticData, out string errorMes, string yourFormatData) { errorMes = null; yourStaticData = null; string csvPath = null; int CodePage = 65001; Encoding csvEncoding = null; #if ALLOW_CSV_EMPTY if (yourFormatData.StartsWith("*")) { int[] tempConuts; if (!yourFormatData.Remove(0, 1).MySplitToIntArray('-', out tempConuts) || tempConuts.Length!=2) { errorMes = string.Format("[GetCsvStaticDataSource]error in [MySplitToIntArray] with :[{0}]", yourFormatData); return false; } if(tempConuts[0]<1||tempConuts[1]<1) { errorMes = string.Format("[GetCsvStaticDataSource]error in [MySplitToIntArray] with :[{0}] \nYour row conut and columu conut should greater than 0 ", yourFormatData); return false; } List tempRow = new List(tempConuts[0]); for (int i = 0; i < tempConuts[0]; i++) { tempRow.Add(null); } List> tempCsvDataSource = new List>(tempConuts[1]); for (int i = 0; i < tempConuts[1];i++ ) { tempCsvDataSource.Add(tempRow.ToList()); } yourStaticData = new MyStaticDataSourceCsv(tempCsvDataSource, yourFormatData); return true; } #endif if (yourFormatData.Contains('-')) { if (!yourFormatData.MySplitIntEnd('-', out csvPath, out CodePage)) { errorMes = string.Format("[GetCsvStaticDataSource]error in [MySplitIntEnd] with :[{0}]", yourFormatData); return false; } } else { csvPath = yourFormatData; } try { csvEncoding = System.Text.Encoding.GetEncoding(CodePage); } catch { errorMes = string.Format("[GetCsvStaticDataSource]error in 【CodePage】 [{0}]", yourFormatData); return false; } csvPath = csvPath.StartsWith("@") ? csvPath.Remove(0, 1) : string.Format("{0}\\FreeHttp\\{1}", MyCommonTool.rootPath, csvPath); if (!System.IO.File.Exists(csvPath)) { errorMes = string.Format("[GetCsvStaticDataSource]error in csv path [path not exixts] [{0}]", yourFormatData); return false; } MyCommonHelper.FileHelper.CsvFileHelper myCsv = new MyCommonHelper.FileHelper.CsvFileHelper(csvPath, csvEncoding); try { yourStaticData = new MyStaticDataSourceCsv(myCsv.GetListCsvData(), yourFormatData); } catch (Exception ex) { errorMes = ex.Message; return false; } finally { myCsv.Dispose(); } return true; } #endregion } } ================================================ FILE: AutoTest/RunTimeStaticData/CaseStaticDataType.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData { public enum CaseStaticDataType { caseStaticData_vaule = 10000, caseStaticData_index = 20000, caseStaticData_long = 20001, caseStaticData_random = 20002, caseStaticData_time = 20003, caseStaticData_list = 20004, caseStaticData_strIndex = 20005, caseStaticData_csv = 30000, caseStaticData_mysql = 30001, caseStaticData_redis = 30002, } /// /// 静态参数化数据大分类 /// public enum CaseStaticDataClass { caseStaticDataKey = 0, caseStaticDataParameter = 1, caseStaticDataSource = 2 } } ================================================ FILE: AutoTest/RunTimeStaticData/IRunTimeDataSource.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData { public interface IRunTimeDataSource : IRunTimeStaticData { /// /// 获取一个值指示该数据源是否已经连接 /// bool IsConnected { get; } /// /// 连接数据源 /// /// bool ConnectDataSource(); /// /// 断开数据源连接 /// /// bool DisConnectDataSource(); /// /// 以指定地址返回数据源中的数据(地址无效或错误请返回null) /// /// 地址字符串(需要按格式指定并定义) /// 目标数据 string GetDataVaule(string vauleAddress); /// /// 设置指定地址的数据值 (IRunTimeStaticData 中的DataSet 设置的是当前值) /// /// 地址字符串(需要按格式指定并定义) /// 期望值 /// 是否成功设置 bool DataSet(string vauleAddress, string expectData); } } ================================================ FILE: AutoTest/RunTimeStaticData/IRunTimeStaticData.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData { /// /// StaticData数据结构接口 /// Current 属性指向集合中的当前成员。 /// MoveNext 属性将枚举数移到集合中的下一成员 /// Reset 属性将枚举数移回集合的开始处 /// //[ServiceKnownType(typeof(System.DBNull))] public interface IRunTimeStaticData : ICloneable { /// ///原始连接字符串 /// string OriginalConnectString { get; } /// /// 获取当前初始化数据类型别名 /// string RunTimeStaticDataTypeAlias { get; } /// /// 获取当前初始化数据类型 /// CaseStaticDataType RunTimeStaticDataType { get; } /// /// 获取当前游标地址的值 /// /// string DataCurrent(); /// /// 将游标下移,并返回下移之后的值(如何已经到达上边界,则重置游标)(为方便使用请特殊处理初始游标也包括重置后的DataMoveNext与DataCurrent一致,即此时DataMoveNext不向下移动) /// /// string DataMoveNext(); /// /// 重置游标 /// void DataReset(); /// /// 设置当前游标指示的数据的值 /// /// 期望值 /// 设置是否成功 bool DataSet(string expectData); } } ================================================ FILE: AutoTest/RunTimeStaticData/MyStaticData/MyStaticDataIndex.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData.MyStaticData { /// /// 为StaticData提供类似索引递增的动态数据【IRunTimeStaticData】 /// [DataContract] public class MyStaticDataIndex : IRunTimeStaticData { [DataMember] private bool isNew; [DataMember] private int dataIndex; [DataMember] private int defaultStart; [DataMember] private int defaultEnd; [DataMember] private int defaultStep; [DataMember] public string OriginalConnectString { get; private set; } public string RunTimeStaticDataTypeAlias { get { return "staticData_index"; } } public CaseStaticDataType RunTimeStaticDataType { get { return CaseStaticDataType.caseStaticData_index; } } public MyStaticDataIndex(int yourStart, int yourEnd, int yourStep) { isNew = true; dataIndex = defaultStart = yourStart; defaultEnd = yourEnd; defaultStep = yourStep; } public MyStaticDataIndex(int yourStart, int yourEnd, int yourStep, string originalConnectString) : this(yourStart, yourEnd, yourStep) { OriginalConnectString = originalConnectString; } public object Clone() { return new MyStaticDataIndex(defaultStart, defaultEnd, defaultStep); } public string DataCurrent() { return dataIndex.ToString(); } [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)] public string DataMoveNext() { if (isNew) { isNew = false; return dataIndex.ToString(); } if (dataIndex >= defaultEnd) { DataReset(); return DataMoveNext(); } else { dataIndex += defaultStep; } return dataIndex.ToString(); } public void DataReset() { isNew = true; dataIndex = defaultStart; } public bool DataSet(string expectData) { int tempData; if (int.TryParse(expectData, out tempData)) { if (tempData >= defaultStart && tempData <= defaultEnd) { dataIndex = tempData; return true; } } return false; } } } ================================================ FILE: AutoTest/RunTimeStaticData/MyStaticData/MyStaticDataList.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData.MyStaticData { /// /// 为StaticData提供当基于List的列表数据支持据【IRunTimeStaticData】 /// [DataContract] public class MyStaticDataList : IRunTimeStaticData { [DataMember] private bool isNew; [DataMember] private string souseData; [DataMember] private List souseListData; [DataMember] private int nowIndex; [DataMember] private bool isRandom; private Random ran; [DataMember] public string OriginalConnectString { get;private set; } public string RunTimeStaticDataTypeAlias { get { return "staticData_list"; } } public CaseStaticDataType RunTimeStaticDataType { get { return CaseStaticDataType.caseStaticData_list; } } public MyStaticDataList(string yourSourceData, bool isRandomNext) { isNew = true; souseData = yourSourceData; souseListData = yourSourceData.Split(',').ToList(); nowIndex = 0; isRandom = isRandomNext; if (isRandom) { ran = new Random(); } else { ran = null; } } public MyStaticDataList(string yourSourceData, bool isRandomNext, string originalConnectString) : this(yourSourceData, isRandomNext) { OriginalConnectString = originalConnectString; } public object Clone() { return new MyStaticDataList(souseData, isRandom); } public string DataCurrent() { return souseListData[nowIndex]; } [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)] public string DataMoveNext() { if (isRandom) { nowIndex = ran.Next(0, souseListData.Count - 1); return souseListData[nowIndex]; } else { if (isNew) { isNew = false; } else { nowIndex++; if (nowIndex > (souseListData.Count - 1)) { nowIndex = 0; } } return souseListData[nowIndex]; } } public void DataReset() { isNew = true; nowIndex = 0; } public bool DataSet(string expectData) { if (souseListData.Contains(expectData)) { nowIndex = souseListData.IndexOf(expectData); } return false; } } } ================================================ FILE: AutoTest/RunTimeStaticData/MyStaticData/MyStaticDataLong.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData.MyStaticData { /// /// 为StaticData提供长数字索引支持【IRunTimeStaticData】 /// [DataContract] public class MyStaticDataLong : IRunTimeStaticData { [DataMember] private bool isNew; [DataMember] private long dataIndex; [DataMember] private long defaultStart; [DataMember] private long defaultEnd; [DataMember] private long defaultStep; [DataMember] public string OriginalConnectString { get; private set; } public string RunTimeStaticDataTypeAlias { get { return "staticData_long"; } } public CaseStaticDataType RunTimeStaticDataType { get { return CaseStaticDataType.caseStaticData_long; } } public MyStaticDataLong(long yourStart, long yourEnd, long yourStep) { isNew = true; dataIndex = defaultStart = yourStart; defaultEnd = yourEnd; defaultStep = yourStep; } public MyStaticDataLong(long yourStart, long yourEnd, long yourStep, string originalConnectString) : this(yourStart, yourEnd, yourStep) { OriginalConnectString = originalConnectString; } public object Clone() { return new MyStaticDataLong(defaultStart, defaultEnd, defaultStep); } public string DataCurrent() { return dataIndex.ToString(); } [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)] public string DataMoveNext() { if (isNew) { isNew = false; return dataIndex.ToString(); } if (dataIndex >= defaultEnd) { DataReset(); return DataMoveNext(); } else { //lock(this) //{ dataIndex += defaultStep; //} } return dataIndex.ToString(); } public void DataReset() { isNew = true; dataIndex = defaultStart; } public bool DataSet(string expectData) { long tempData; if (long.TryParse(expectData, out tempData)) { if (tempData >= defaultStart && tempData <= defaultEnd) { dataIndex = tempData; return true; } } return false; } } } ================================================ FILE: AutoTest/RunTimeStaticData/MyStaticData/MyStaticDataNowTime.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData.MyStaticData { /// /// 为StaticData提供当前时间的动态数据【IRunTimeStaticData】 /// [DataContract] public class MyStaticDataNowTime : IRunTimeStaticData { [DataMember] string myNowStr; [DataMember] string myDataFormatInfo; [DataMember] int timestampFormatdividend; [DataMember] public string OriginalConnectString { get; private set; } public string RunTimeStaticDataTypeAlias { get { return "staticData_time"; } } public CaseStaticDataType RunTimeStaticDataType { get { return CaseStaticDataType.caseStaticData_time; } } public MyStaticDataNowTime(string yourRormatInfo) { myNowStr = ""; if (int.TryParse(yourRormatInfo, out timestampFormatdividend)) { if(timestampFormatdividend<=0) { timestampFormatdividend = 0; myDataFormatInfo = ""; } } else { myDataFormatInfo = yourRormatInfo; } } public MyStaticDataNowTime(string yourRormatInfo, string originalConnectString) : this(yourRormatInfo) { OriginalConnectString = originalConnectString; } public object Clone() { return new MyStaticDataNowTime(myDataFormatInfo); } public string DataCurrent() { return myNowStr; } public string DataMoveNext() { if (timestampFormatdividend == 0) { myNowStr = System.DateTime.Now.ToString(myDataFormatInfo); } else { myNowStr = ((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / timestampFormatdividend).ToString(); } return myNowStr; } public void DataReset() { myNowStr = ""; } public bool DataSet(string expectData) { if (expectData != null) { myNowStr = expectData; return true; } return false; } } } ================================================ FILE: AutoTest/RunTimeStaticData/MyStaticData/MyStaticDataRandomStr.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData.MyStaticData { /// /// 为StaticData提供随机字符串动态数据【IRunTimeStaticData】 /// [DataContract] public class MyStaticDataRandomStr : IRunTimeStaticData { [DataMember] string myNowStr; [DataMember] int myStrNum; [DataMember] int myStrType; [DataMember] public string OriginalConnectString { get; private set; } public string RunTimeStaticDataTypeAlias { get { return "staticData_random"; } } public CaseStaticDataType RunTimeStaticDataType { get { return CaseStaticDataType.caseStaticData_random; } } public MyStaticDataRandomStr(int yourStrNum, int yourStrType) { myNowStr = ""; myStrNum = yourStrNum; myStrType = yourStrType; } public MyStaticDataRandomStr(int yourStrNum, int yourStrType, string originalConnectString) : this(yourStrNum, yourStrType) { OriginalConnectString = originalConnectString; } public object Clone() { return new MyStaticDataRandomStr(myStrNum, myStrType); } public string DataCurrent() { return myNowStr; } public string DataMoveNext() { myNowStr = MyCommonTool.GenerateRandomStr(myStrNum, myStrType); return myNowStr; } public void DataReset() { myNowStr = ""; } public bool DataSet(string expectData) { if (expectData != null) { myNowStr = expectData; return true; } return false; } } } ================================================ FILE: AutoTest/RunTimeStaticData/MyStaticData/MyStaticDataSourceCsv.cs ================================================ using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData.MyStaticData { [DataContract] public class MyStaticDataSourceCsv : IRunTimeDataSource { [DataMember] private bool isNew; [DataMember] private int nowRowIndex; [DataMember] private int nowColumnIndex; [DataMember] private List> csvData; [DataMember] public string OriginalConnectString { get; private set; } public string RunTimeStaticDataTypeAlias { get { return "staticDataSource_csv"; } } public CaseStaticDataType RunTimeStaticDataType { get { return CaseStaticDataType.caseStaticData_csv; } } public MyStaticDataSourceCsv(List> yourCsvData) { isNew = true; nowRowIndex = 0; nowColumnIndex = 0; if(!SetDataSource(yourCsvData)) { csvData = new List>() { new List() { "NullData" } }; } } public MyStaticDataSourceCsv(List> yourCsvData, string originalConnectString) : this(yourCsvData) { OriginalConnectString = originalConnectString; } public object Clone() { return new MyStaticDataSourceCsv(csvData); } public bool IsConnected { get { return true; } } public bool ConnectDataSource() { return true; } public bool DisConnectDataSource() { return true; } public List> GetDataSource() { return csvData; } public bool SetDataSource(List> yourDataSource) { if (yourDataSource.Count == 0 || yourDataSource[0] == null || yourDataSource[0].Count==0) { return false; } for (int i = yourDataSource.Count -1 ; i >= 0; i--) { if (yourDataSource[i] == null || yourDataSource[i].Count==0) { yourDataSource.RemoveAt(i); } } csvData = yourDataSource; if(nowRowIndex>=yourDataSource.Count || nowColumnIndex>=yourDataSource[nowRowIndex].Count) { DataReset(); } return true; } public string GetDataVaule(string vauleAddress) { if (vauleAddress != null) { int[] csvPosition; if (vauleAddress.MySplitToIntArray('-', out csvPosition)) { if (csvPosition.Length == 2) { return GetDataVaule(csvPosition[1], csvPosition[0]); } } } return null; } public string GetDataVaule(int yourRowIndex, int yourColumnIndex) { if (yourRowIndex < csvData.Count) { if (yourColumnIndex < csvData[yourRowIndex].Count) { return csvData[yourRowIndex][yourColumnIndex] ?? ""; } } return null; } public string DataCurrent() { //不需要检查 Index ,索引在内部操作,不可能越界 return csvData[nowRowIndex][nowColumnIndex] ?? ""; } [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)] public string DataMoveNext() { if (isNew) { isNew = false; } else { //内部游标没有变化前不会越界 if (nowColumnIndex + 1 < csvData[nowRowIndex].Count) { nowColumnIndex++; } else if (nowRowIndex + 1 < csvData.Count) { nowColumnIndex = 0; nowRowIndex++; } else { DataReset(); } } return DataCurrent(); } public void DataReset() { //对于csv文件解析出来的数据不可能出现空行空列的情况,所以(0,0) nowRowIndex = 0; nowColumnIndex = 0; isNew = true; } /// /// 设置源数据(使用|分割数据地址及数据值,如果以|开头则表示设置当前地址的值,不含有|的数据也表示当前值) /// /// 数据地址及数据内容字符串 /// 是否完成 public bool DataExpressionSet(string ExpressionData) { if (ExpressionData != null) { int splitIndex = ExpressionData.IndexOf('|'); if (splitIndex > 0) { return DataSet(ExpressionData.Substring(0, splitIndex), ExpressionData.Remove(0, splitIndex + 1)); } else if(splitIndex ==0) { return DataSet(ExpressionData.Remove(0, 1)); } else { return DataSet(ExpressionData); } } return false; } public bool DataSet(string expectData) { if (expectData != null) { csvData[nowRowIndex][nowColumnIndex] = expectData; return true; } return false; } public bool DataSet(int yourRowIndex, int yourColumnIndex, string expectData) { if (yourRowIndex < 0 || yourColumnIndex<0) { return false; } if (yourColumnIndex > csvData.Count - 1) { for (int i = 0; yourColumnIndex > csvData.Count - 1; i++) { csvData.Add(new List { "" }); } } if (yourRowIndex > csvData[yourColumnIndex].Count - 1) { for (int i = 0; yourRowIndex > csvData[yourRowIndex].Count-1; i++) { csvData[yourRowIndex].Add(""); } } csvData[yourRowIndex][yourColumnIndex] = expectData; return true; } public bool DataSet(string vauleAddress, string expectData) { if (vauleAddress != null) { int[] csvPosition; if (vauleAddress.MySplitToIntArray('-', out csvPosition)) { if (csvPosition.Length == 2) { DataSet(csvPosition[1], csvPosition[0], expectData); return true; } } } return false; } public bool SetDataLocation(int yourRowIndex, int yourColumnIndex) { if (yourRowIndex < 0 || yourColumnIndex < 0) { return false; } if (yourRowIndex > csvData.Count - 1 || yourColumnIndex > csvData[yourRowIndex].Count - 1) { return false; } nowRowIndex = yourRowIndex; nowColumnIndex = yourColumnIndex; return true; } public Point GetDataLocation() { return new Point(nowColumnIndex, nowRowIndex); } } } ================================================ FILE: AutoTest/RunTimeStaticData/MyStaticData/MyStaticDataStrIndex.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData.MyStaticData { /// /// 为StaticData提定长字符串型数字索引支持【IRunTimeStaticData】 /// [DataContract] public class MyStaticDataStrIndex : IRunTimeStaticData { [DataMember] private bool isNew; [DataMember] private long dataIndex; [DataMember] private long defaultStart; [DataMember] private long defaultEnd; [DataMember] private long defaultStep; [DataMember] private int strLen; [DataMember] public string OriginalConnectString { get; private set; } public string RunTimeStaticDataTypeAlias { get { return "staticData_strIndex"; } } public CaseStaticDataType RunTimeStaticDataType { get { return CaseStaticDataType.caseStaticData_strIndex; } } public MyStaticDataStrIndex(long yourStart, long yourEnd, long yourStep, int yourStrLen) { isNew = true; dataIndex = defaultStart = yourStart; defaultEnd = yourEnd; defaultStep = yourStep; strLen = yourStrLen; } public MyStaticDataStrIndex(long yourStart, long yourEnd, long yourStep, int yourStrLen, string originalConnectString) : this(yourStart, yourEnd, yourStep, yourStrLen) { OriginalConnectString = originalConnectString; } public object Clone() { return new MyStaticDataStrIndex(defaultStart, defaultEnd, defaultStep, strLen); } private string GetLenStr(long yourLeng) { string outStr = yourLeng.ToString(); int distinction = strLen - outStr.Length; if (distinction > 0) { for (int i = 0; i < distinction; i++) { outStr = "0" + outStr; } } return outStr; } public string DataCurrent() { return GetLenStr(dataIndex); } [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)] public string DataMoveNext() { if (isNew) { isNew = false; return GetLenStr(dataIndex); } if (dataIndex >= defaultEnd) { DataReset(); return DataMoveNext(); } else { dataIndex += defaultStep; } return GetLenStr(dataIndex); } public void DataReset() { isNew = true; dataIndex = defaultStart; } public bool DataSet(string expectData) { long tempData; if (long.TryParse(expectData, out tempData)) { if (tempData >= defaultStart && tempData <= defaultEnd) { dataIndex = tempData; return true; } } return false; } } } ================================================ FILE: AutoTest/RunTimeStaticData/MyStaticData/MyStaticDataValue.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.Serialization; namespace FreeHttp.AutoTest.RunTimeStaticData.MyStaticData { [DataContract] public class MyStaticDataValue : IRunTimeStaticData { [DataMember] private string defaultValue; [DataMember] public string OriginalConnectString { get;private set; } public string RunTimeStaticDataTypeAlias { get { return "staticData_value"; } } public CaseStaticDataType RunTimeStaticDataType { get { return CaseStaticDataType.caseStaticData_vaule; } } public MyStaticDataValue(string yourVaule) { defaultValue=OriginalConnectString=yourVaule; } public object Clone() { return new MyStaticDataValue(defaultValue); } public string DataCurrent() { return defaultValue; } public string DataMoveNext() { return defaultValue; } public void DataReset() { } public bool DataSet(string expectData) { if (expectData!=null) { defaultValue = expectData; return true; } return false; } } } ================================================ FILE: AutoTest/RunTimeStaticData/RunTimeStaticDataHelper.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.AutoTest.RunTimeStaticData { public static class RunTimeStaticDataHelper { public static bool AddStaticDataToCollection(ActuatorStaticDataCollection actuatorStaticDataCollection, CaseStaticDataType dataType, string staticDataKey, string staticDataVaule, out string errorMes) { errorMes = null; if (actuatorStaticDataCollection==null) { errorMes = "your ActuatorStaticDataCollection is null"; return false; } if (actuatorStaticDataCollection.IsHaveSameKey(staticDataKey)) { errorMes = (string.Format("find same key 【{0}】in RunTimeParameter with [ CaseStaticDataClass.caseStaticDataKey] in - ScriptRunTime ,and will drop this key", staticDataKey)); return false; } switch(CaseRunTimeDataTypeEngine.dictionaryStaticDataTypeClass[dataType]) { case CaseStaticDataClass.caseStaticDataKey: if (dataType == CaseStaticDataType.caseStaticData_vaule) { if (!actuatorStaticDataCollection.AddStaticDataKey(staticDataKey, new FreeHttp.AutoTest.RunTimeStaticData.MyStaticData.MyStaticDataValue(staticDataVaule))) { errorMes = (string.Format("can not add {0} into ActuatorStaticDataCollection", staticDataKey)); return false; } //runActuatorStaticDataCollection.RunActuatorStaticDataKeyList.MyAdd(new KeyValuePair()); } else { throw new Exception(string.Format("find nonsupport Protocol 【{0}】with [ CaseStaticDataClass.caseStaticDataKey] in - ScriptRunTime ", dataType)); } break; case CaseStaticDataClass.caseStaticDataParameter: IRunTimeStaticData tempRunTimeStaticData; string tempTypeError; if (CaseRunTimeDataTypeEngine.dictionaryStaticDataParameterAction[dataType](out tempRunTimeStaticData, out tempTypeError, staticDataVaule)) { if (!actuatorStaticDataCollection.AddStaticDataParameter(staticDataKey, tempRunTimeStaticData)) { errorMes = (string.Format("can not add {0} into ActuatorStaticDataCollection", staticDataKey)); return false; } //runActuatorStaticDataCollection.RunActuatorStaticDataParameterList.MyAdd(tempName, tempRunTimeStaticData); } else { errorMes = string.Format("find error in 【RunTimeStaticData】->【{0}】:value:【{1}】 by {2}", staticDataKey, staticDataVaule, tempTypeError); return false; } break; case CaseStaticDataClass.caseStaticDataSource: IRunTimeDataSource tempRunTimeDataSource; if (CaseRunTimeDataTypeEngine.dictionaryStaticDataSourceAction[dataType](out tempRunTimeDataSource, out tempTypeError, staticDataVaule)) { if (!actuatorStaticDataCollection.AddStaticDataSouce(staticDataKey, tempRunTimeDataSource)) { errorMes = (string.Format("can not add {0} into ActuatorStaticDataCollection", staticDataKey)); return false; } //runActuatorStaticDataCollection.RunActuatorStaticDataSouceList.MyAdd(tempName, tempRunTimeDataSource); } else { errorMes = (string.Format("find error in 【RunTimeStaticData】->【{0}】:value:【{1}】 by {2}", staticDataKey, staticDataVaule, tempTypeError)); return false; } break; default: throw new Exception(" find nonsupport CaseStaticDataClass"); } return true; } } } ================================================ FILE: FiddlerFreeHttp.cs ================================================ using Fiddler; using FreeHttp.AutoTest.RunTimeStaticData; using FreeHttp.FiddlerHelper; using FreeHttp.FreeHttpControl; using FreeHttp.MyHelper; using FreeHttp.WebService; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; /******************************************************************************* * Copyright (c) 2018 lulianqi * All rights reserved. * * 文件名称: * 内容摘要: mycllq@hotmail.com * * 历史记录: * 日 期: 20181103 创建人: lulianqi [mycllq@hotmail.com] * 描 述: 创建 * * 历史记录: * 日 期: 修改: * 描 述: *******************************************************************************/ [assembly: Fiddler.RequiredVersion("2.3.5.0")] namespace FreeHttp { public class FiddlerFreeHttp : IAutoTamper, IDisposable { private bool isOnLoad = false; //是否已经加载过tab private bool isCheckedUpdata = false; //是否已经成功完成更新检查,如果检查失败会被重新设置为false private bool isInFreeHttpTab = false; //是否在正在FreeHttp Tab页中 private Image myIco; private TabPage tabPage; private FreeHttpWindow myFreeHttpWindow; private UpgradeService upgradeService; private OperationReportService operationReportService; public bool IsSkipConnectTunnels { get { if (myFreeHttpWindow != null && myFreeHttpWindow.ModificSettingInfo != null) return myFreeHttpWindow.ModificSettingInfo.IsSkipConnectTunnels; else return true; } } public bool IsSkipUiHide { get { if (myFreeHttpWindow != null && myFreeHttpWindow.ModificSettingInfo != null) return myFreeHttpWindow.ModificSettingInfo.IsSkipUiHide; else return true; } } public bool IsOnlyMatchFistTamperRule { get { if (myFreeHttpWindow != null && myFreeHttpWindow.ModificSettingInfo != null) return myFreeHttpWindow.ModificSettingInfo.IsOnlyMatchFirstTamperRule; else return false; } } public bool IsHideFreeHttpSession { get { return isCheckedUpdata && myFreeHttpWindow.ModificSettingInfo.IsHideSelfSession; } } private void ShowMes(string mes) { ShowMes(mes, false); } private void ShowMes(string mes , bool isReport = false) { if (!isOnLoad) { return; } if (isReport) _ = RemoteLogService.ReportLogAsync(mes, RemoteLogService.RemoteLogOperation.SessionTamp, RemoteLogService.RemoteLogType.Info); if (myFreeHttpWindow.InvokeRequired) { //BeginInvoke,Invoke will execute in the contol ui thread, but Invoke will with the end in the ui thread //myFreeHttpWindow.Invoke(new Action(()=>{System.Threading.Thread.Sleep(10000);}) ); myFreeHttpWindow.BeginInvoke(new Action(myFreeHttpWindow.PutInfo), mes); } else { myFreeHttpWindow.PutInfo(mes); } } private void ShowError(string mes) { ShowError(mes, true); } private void ShowError(string mes ,bool isReport = true) { if (!isOnLoad) { return; } AddFiddlerObjectLog(mes); if(isReport) _ = RemoteLogService.ReportLogAsync(mes, RemoteLogService.RemoteLogOperation.SessionTamp, RemoteLogService.RemoteLogType.Error); if (myFreeHttpWindow.InvokeRequired) { myFreeHttpWindow.BeginInvoke(new Action(myFreeHttpWindow.PutError), mes); } else { myFreeHttpWindow.PutError(mes); } } private void AddFiddlerObjectLog(string mes) { FiddlerObject.log(string.Format("【FiddlerFreeHttp】:{0}", mes)); } private void SetStatusText(string mes) { FiddlerObject.StatusText = mes; } private void MarkSession(Session oSession) { oSession["ui-backcolor"] = "Khaki"; oSession["ui-bold"] = "true"; oSession["ui-color"] = "Indigo"; oSession.RefreshUI(); } public void OnBeforeUnload() { SerializableHelper.SerializeRuleList(myFreeHttpWindow.RequestRuleListView, myFreeHttpWindow.ResponseRuleListView); SerializableHelper.SerializeData(myFreeHttpWindow.ModificSettingInfo, "FreeHttp\\FreeHttpSetting.xml"); SerializableHelper.SerializeContractData(myFreeHttpWindow.StaticDataCollection, "FreeHttp\\FreeHttpStaticDataCollection.xml"); SerializableHelper.SerializeContractData(myFreeHttpWindow.ModificRuleGroup, "FreeHttp\\FreeHttpModificRuleGroup.xml"); if (isInFreeHttpTab) { operationReportService.OutOperation(DateTime.Now, myFreeHttpWindow.RequestRuleListView.Items.Count, myFreeHttpWindow.ResponseRuleListView.Items.Count); } if (operationReportService.HasAnyOperation && IsSkipConnectTunnels) { operationReportService.StaticDataCollection = myFreeHttpWindow.StaticDataCollection.IsEmpty? null: myFreeHttpWindow.StaticDataCollection; operationReportService.RuleGroup = myFreeHttpWindow.ModificRuleGroup.IsEmpty ? null : myFreeHttpWindow.ModificRuleGroup; operationReportService.FiddlerRequestChangeRuleList = myFreeHttpWindow.FiddlerRequestChangeList; operationReportService.FiddlerResponseChangeRuleList = myFreeHttpWindow.FiddlerResponseChangeList; operationReportService.StartReportThread(); } upgradeService.TrySilentUpgrade(); } [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)] public void OnLoad() { AddFiddlerObjectLog("OnLoad"); //string workPath = string.Format("{0}\\FreeHttp", System.Windows.Forms.Application.StartupPath); //System.Threading.Tasks.Task.Run(OnLoad); string workPath = string.Format("{0}\\FreeHttp", Directory.GetCurrentDirectory()); if (!isOnLoad) { tabPage = new TabPage(); tabPage.Text = "Free Http"; if (FiddlerApplication.UI.tabsViews.ImageList != null) { myIco = FreeHttp.Resources.MyResource.freehttp; FiddlerApplication.UI.tabsViews.ImageList.Images.Add(myIco); tabPage.ImageIndex = FiddlerApplication.UI.tabsViews.ImageList.Images.Count - 1; } try { if (!Directory.Exists(workPath)) { AddFiddlerObjectLog(string.Format("Create working directory {0}", workPath)); Directory.CreateDirectory(workPath); } AddFiddlerObjectLog(string.Format("load configuration")); myFreeHttpWindow = new FreeHttpWindow(SerializableHelper.DeserializeRuleList(), SerializableHelper.DeserializeData("FreeHttp\\FreeHttpSetting.xml"), SerializableHelper.DeserializeContractData("FreeHttp\\FreeHttpStaticDataCollection.xml"), SerializableHelper.DeserializeContractData("FreeHttp\\FreeHttpModificRuleGroup.xml")); } catch (Exception ex) { AddFiddlerObjectLog(string.Format("load configuration fial ,{0}", ex.Message)); } finally { if (myFreeHttpWindow == null) { myFreeHttpWindow = new FreeHttpWindow(null, null, null ,null); } } myFreeHttpWindow.OnUpdataFromSession += myFreeHttpWindow_OnUpdataFromSession; myFreeHttpWindow.OnGetSessionRawData += myFreeHttpWindow_OnGetSessionRawData; myFreeHttpWindow.OnGetSessionEventArgs += MyFreeHttpWindow_OnGetSessionEventArgs; myFreeHttpWindow.OnGetSessionSeekHead += myFreeHttpWindow_OnGetSessionSeekHead; myFreeHttpWindow.OnShowInIndependentWindow += MyFreeHttpWindow_OnShowInIndependentWindow; myFreeHttpWindow.Dock = DockStyle.Fill; myFreeHttpWindow.Enter += myFreeHttpWindow_Enter; tabPage.Controls.Add(myFreeHttpWindow); FiddlerApplication.UI.tabsViews.TabPages.Add(tabPage); Fiddler.FiddlerApplication.UI.Deactivate += UI_Deactivate; FiddlerApplication.UI.tabsViews.SelectedIndexChanged += tabsViews_SelectedIndexChanged; FiddlerApplication.OnWebSocketMessage += FiddlerApplication_OnWebSocketMessage; FiddlerApplication.UI.tabsViews.ParentChanged += TabsViews_ParentChanged; upgradeService = new UpgradeService(); upgradeService.GetUpgradeMes += upgradeService_GetUpgradeMes; operationReportService = new OperationReportService(); isOnLoad = true; } } private void TabsViews_ParentChanged(object sender, EventArgs e) { myFreeHttpWindow.FreeHttpWindowParentChanged(sender); } void tabsViews_SelectedIndexChanged(object sender, EventArgs e) { if (isCheckedUpdata == false && FiddlerApplication.UI.tabsViews.SelectedTab == tabPage) { isCheckedUpdata = true; upgradeService.StartCheckUpgrade(); //upgradeService.StartCheckUpgradeThread(); } //operation report if (FiddlerApplication.UI.tabsViews.SelectedTab == tabPage) { isInFreeHttpTab = true; operationReportService.InOperation(DateTime.Now); myFreeHttpWindow.FreeHttpWindowSelectedChanged(true); } else if (isInFreeHttpTab) { isInFreeHttpTab = false; operationReportService.OutOperation(DateTime.Now, myFreeHttpWindow.RequestRuleListView.Items.Count, myFreeHttpWindow.ResponseRuleListView.Items.Count); myFreeHttpWindow.FreeHttpWindowSelectedChanged(false); } } void myFreeHttpWindow_Enter(object sender, EventArgs e) { //when myFreeHttpWindow is enter do somethings } void UI_Deactivate(object sender, EventArgs e) { myFreeHttpWindow.CloseEditRtb(); } private void upgradeService_GetUpgradeMes(object sender, UpgradeService.UpgradeServiceEventArgs e) { Action ShowDialogResultBox = (message, title) => { if (string.IsNullOrEmpty(e.UpgradeInfo.url)) { MessageBox.Show(message, title); } else { if (MessageBox.Show(message, title,e.UpgradeInfo.isForceEnter? MessageBoxButtons.OK : MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK) { ShowMes(string.Format("enter message details [flag:{0}]", e.UpgradeInfo.messageFlag??"any"),true); if (string.IsNullOrEmpty(e.UpgradeInfo.url)) { MessageBox.Show("UpgradeInfo.url is error"); return; } try { System.Diagnostics.Process.Start(e.UpgradeInfo.url); } catch (Exception ex) { MessageBox.Show(string.Format("UpgradeMes is error \r\n{0}", ex.Message)); ShowError(string.Format("process start fail [{0}] [{1}] ", e.UpgradeInfo.url , ex.Message)); } } else { ShowMes(string.Format("cancel enter message details [flag:{0}]", e.UpgradeInfo.messageFlag ?? "any"),true); } } }; if (e.IsSuccess) { if(!string.IsNullOrEmpty(e.UpgradeInfo.uuid)&& string.IsNullOrEmpty(myFreeHttpWindow.ModificSettingInfo.UserToken)) { myFreeHttpWindow.ModificSettingInfo.UserToken = e.UpgradeInfo.uuid; } if (e.UpgradeInfo.isNeedUpdata && !e.UpgradeInfo.isSilentUpgrade) { //ShowDialogResultBox(string.IsNullOrEmpty(e.UpgradeInfo.message)?"Find new version for [ FreeHttp Plug-in ] \r\nDo you want goto upgrade page to udpade your FreeHttp" : e.UpgradeInfo.message , "find new version"); myFreeHttpWindow.Invoke(new Action(() => { ShowDialogResultBox(string.IsNullOrEmpty(e.UpgradeInfo.message) ? "Find new version for [ FreeHttp Plug-in ] \r\nDo you want goto upgrade page to udpade your FreeHttp" : e.UpgradeInfo.message, "find new version"); })); return; } else if(e.UpgradeInfo.isNeedUpdata && e.UpgradeInfo.isSilentUpgrade) { //Silent Upgrade } else if (e.UpgradeInfo.isShowMessage && !string.IsNullOrEmpty(e.UpgradeInfo.message)) { //show meaasge if(string.IsNullOrEmpty(e.UpgradeInfo.messageFlag)) { myFreeHttpWindow.Invoke(new Action(() => { ShowDialogResultBox(e.UpgradeInfo.message, "new message"); })); } else { if (!myFreeHttpWindow.ModificSettingInfo.ReadedMessageFlags.Contains(e.UpgradeInfo.messageFlag)) { myFreeHttpWindow.Invoke(new Action(() => { ShowDialogResultBox(e.UpgradeInfo.message, "new message"); })); myFreeHttpWindow.ModificSettingInfo.ReadedMessageFlags.Add(e.UpgradeInfo.messageFlag); } } } else { //not any thing } } else { isCheckedUpdata = false; } } private void myFreeHttpWindow_OnGetSessionRawData(object sender, FreeHttpWindow.GetSessionRawDataEventArgs e) { Session tempSession = Fiddler.FiddlerObject.UI.GetFirstSelectedSession(); if (tempSession == null) { Fiddler.FiddlerObject.UI.ShowAlert(new frmAlert("STOP", "please select a session", "OK")); FreeHttpWindow.MarkWarnControl(Fiddler.FiddlerApplication.UI.lvSessions); return; } switch (e.SessionAction) { case FreeHttpWindow.GetSessionAction.ShowShowResponse: string tempStr = FiddlerSessionTamper.GetSessionRawData(tempSession, true); ShowMes(tempStr == null ? "error session" : string.Format("Get Raw Data\r\n{0}", tempStr)); myFreeHttpWindow.ShowOwnerWindow(tempSession.fullUrl, tempStr); break; case FreeHttpWindow.GetSessionAction.SetCookies: myFreeHttpWindow.SetClientAddCookies(tempSession.RequestHeaders["Cookie"]); break; case FreeHttpWindow.GetSessionAction.DeleteCookies: myFreeHttpWindow.SetClientDelCookies(tempSession.RequestHeaders["Cookie"]); break; default: Fiddler.FiddlerObject.UI.ShowAlert(new frmAlert("STOP", "Not supported this SessionAction", "OK")); break; } } private void MyFreeHttpWindow_OnGetSessionEventArgs(object sender, FreeHttpWindow.GetSessionEventArgs e) { Session tempSession = Fiddler.FiddlerObject.UI.GetFirstSelectedSession(); if (tempSession == null) { e.IsGetSuccess = false; } else { e.IsGetSuccess = FiddlerSessionTamper.GetSessionData(tempSession, e); } } private void myFreeHttpWindow_OnGetSessionSeekHead(object sender, FreeHttpWindow.GetSessionSeekHeadEventArgs e) { Session tempSession = Fiddler.FiddlerObject.UI.GetFirstSelectedSession(); if (tempSession == null) { FreeHttpWindow.MarkWarnControl(Fiddler.FiddlerApplication.UI.lvSessions); } else { if (e != null && e.ResquestHead.Key != null) { //HTTPHeaderItem nowHTTPHeaderItem = tempSession.RequestHeaders.First(hTTPHeaderItem => hTTPHeaderItem.Name == e.ResquestHead.Key); HTTPHeaderItem nowHTTPHeaderItem = tempSession.RequestHeaders.FirstOrDefault(hTTPHeaderItem => hTTPHeaderItem.Name == e.ResquestHead.Key); if (nowHTTPHeaderItem != null) { e.ResquestHead = new KeyValuePair(nowHTTPHeaderItem.Name, nowHTTPHeaderItem.Value); e.SeekUri = tempSession.fullUrl; } } if (e != null && e.ResponseHead.Key != null) { HTTPHeaderItem nowHTTPHeaderItem = tempSession.ResponseHeaders.FirstOrDefault(hTTPHeaderItem => hTTPHeaderItem.Name == e.ResponseHead.Key); if (nowHTTPHeaderItem != null) { e.ResponseHead = new KeyValuePair(nowHTTPHeaderItem.Name, nowHTTPHeaderItem.Value); e.SeekUri = tempSession.fullUrl; } } } } private void MyFreeHttpWindow_OnShowInIndependentWindow(object sender, bool e) { if(e) { myFreeHttpWindow.FreeHttpWindowParentChanged(sender); Form newForm = new Form(); newForm.Icon = FreeHttp.Resources.MyResource.freehttpico; newForm.Text = "FreeHttp"; newForm.Size = tabPage.Size; newForm.FormClosing += new FormClosingEventHandler((yourSender, yourE) => { myFreeHttpWindow.FreeHttpWindowParentChanged(sender); MyControlHelper.SetControlFreeze(tabPage); myFreeHttpWindow.independentWindowToolStripMenuItem.Text = "independent window"; tabPage.Controls.Clear(); tabPage.Controls.Add(myFreeHttpWindow); MyControlHelper.SetControlUnfreeze(tabPage); }); MyControlHelper.SetControlFreeze(newForm); Label lb_info = new Label(); lb_info.Text = "closing..."; lb_info.ForeColor = Color.Blue; lb_info.Location = new Point((newForm.Width - lb_info.Width) / 2, (newForm.Height - lb_info.Height) / 2); lb_info.Anchor = AnchorStyles.None; newForm.Controls.Add(lb_info); newForm.Controls.Add(myFreeHttpWindow); lb_info.SendToBack(); MyControlHelper.SetControlUnfreeze(newForm); newForm.Show(); LinkLabel llb_info = new LinkLabel(); llb_info.Text = "FreeHttp is in independent mode"; llb_info.ForeColor = Color.Blue; llb_info.AutoSize = true; llb_info.Location = new Point((tabPage.Width - llb_info.Width) / 2, (tabPage.Height - llb_info.Height) / 2); llb_info.Anchor = AnchorStyles.None; llb_info.LinkClicked += new LinkLabelLinkClickedEventHandler((yourSender, yourE) => { newForm.Activate(); }); tabPage.Controls.Add(llb_info); LinkLabel llb_infoRecover = new LinkLabel(); llb_infoRecover.Text = "recover to addin mode"; llb_infoRecover.ForeColor = Color.Blue; llb_infoRecover.AutoSize = true; llb_infoRecover.Location = new Point((tabPage.Width - llb_infoRecover.Width) / 2, ((tabPage.Height - llb_infoRecover.Height) / 2) + 20); llb_infoRecover.Anchor = AnchorStyles.None; llb_infoRecover.LinkClicked += new LinkLabelLinkClickedEventHandler((yourSender, yourE) => { myFreeHttpWindow.independentWindowToolStripMenuItem_Click(null, null);}); tabPage.Controls.Add(llb_infoRecover); } else { (myFreeHttpWindow.Parent as Form)?.Close(); } } private void myFreeHttpWindow_OnUpdataFromSession(object sender, EventArgs e) { Session tempSession = Fiddler.FiddlerObject.UI.GetFirstSelectedSession(); if (tempSession != null) { ShowMes(string.Format("Get http session in {0}", tempSession.fullUrl)); ((FreeHttpWindow)sender).SetModificSession(tempSession); } else { Fiddler.FiddlerObject.UI.ShowAlert(new frmAlert("STOP", "please select a session", "OK")); //((FreeHttpWindow)sender).MarkWarnControl(Fiddler.FiddlerApplication.UI.Controls[0]); FreeHttpWindow.MarkWarnControl(Fiddler.FiddlerApplication.UI.lvSessions); } } private void FiddlerApplication_OnWebSocketMessage(object sender, WebSocketMessageEventArgs e) { //((Bitmap)((Fiddler.Session)sender).ViewItem.ImageList.Images[34]).Save(@"D:\A1.ico", System.Drawing.Imaging.ImageFormat.Icon); Session oSession = (Session)sender; WebSocketMessage webSocketMessage = e.oWSM; if (!isOnLoad) { return; } if(webSocketMessage==null) { AddFiddlerObjectLog("get null WebSocketMessage"); return; } if (webSocketMessage.FrameType == WebSocketFrameTypes.Close || webSocketMessage.FrameType == WebSocketFrameTypes.Ping || webSocketMessage.FrameType == WebSocketFrameTypes.Pong || webSocketMessage.FrameType == WebSocketFrameTypes.Reservedx3 || webSocketMessage.FrameType == WebSocketFrameTypes.Reservedx4 || webSocketMessage.FrameType == WebSocketFrameTypes.Reservedx5 || webSocketMessage.FrameType == WebSocketFrameTypes.Reservedx6 || webSocketMessage.FrameType == WebSocketFrameTypes.Reservedx7 || webSocketMessage.FrameType == WebSocketFrameTypes.ReservedxB || webSocketMessage.FrameType == WebSocketFrameTypes.ReservedxC || webSocketMessage.FrameType == WebSocketFrameTypes.ReservedxD || webSocketMessage.FrameType == WebSocketFrameTypes.ReservedxE || webSocketMessage.FrameType == WebSocketFrameTypes.ReservedxF) { return; } if ((myFreeHttpWindow.IsRequestRuleEnable && webSocketMessage.IsOutbound)|| (myFreeHttpWindow.IsResponseRuleEnable && !webSocketMessage.IsOutbound)) { if (IsSkipUiHide && oSession["ui-hide"] !=null) { return; } if (IsSkipConnectTunnels && oSession.RequestMethod == "CONNECT") { return; } bool isRequest = webSocketMessage.IsOutbound; List matchItems = null; if(isRequest) { matchItems = FiddlerSessionHelper.FindMatchTanperRule(oSession, myFreeHttpWindow.FiddlerRequestChangeList, isRequest, webSocketMessage); } else { //oSession.WriteResponseToStream(new MemoryStream(new Byte[] { 0x81,0x81,0x01,0x41 }), false); //WebSocket ws = oSession.__oTunnel as WebSocket; //ws.listMessages.Add(webSocketMessage); matchItems = FiddlerSessionHelper.FindMatchTanperRule(oSession, myFreeHttpWindow.FiddlerResponseChangeList, isRequest, webSocketMessage); } if (matchItems != null && matchItems.Count > 0) { foreach (var matchItem in matchItems) { ListViewItem tempListViewItem = myFreeHttpWindow.FindListViewItemFromRule(matchItem); FreeHttpWindow.MarkMatchRule(tempListViewItem); MarkSession(oSession); ShowMes(string.Format("macth the [requst rule {0}] with {1}", tempListViewItem.SubItems[0].Text, oSession.fullUrl)); FiddlerSessionTamper.ModificWebSocketMessage(oSession, webSocketMessage, matchItem ,isRequest, ShowError, ShowMes); if (!isRequest) { FiddlerResponseChange nowFiddlerResponseChange = ((FiddlerResponseChange)matchItem); if (nowFiddlerResponseChange.ResponseLatency > 0) { ShowMes(string.Format("[reponse rule {0}] is modified , now delay {1} ms", tempListViewItem.SubItems[0].Text, nowFiddlerResponseChange.ResponseLatency)); System.Threading.Thread.Sleep(nowFiddlerResponseChange.ResponseLatency); } if (IsOnlyMatchFistTamperRule) { break; } } } } } } public void AutoTamperRequestAfter(Session oSession) { //throw new NotImplementedException(); } public void AutoTamperRequestBefore(Session oSession) { //if (oSession.HTTPMethodIs("CONNECT") && oSession.HostnameIs("api.map.baidu.com")) //{ // oSession["x-OverrideSslProtocols"] = "ssl3.0"; //} //oSession.oRequest["AddOrigin"] = "from lijie PC"; if (!isOnLoad) { return; } if(IsHideFreeHttpSession && oSession.oRequest.host=="api.lulianqi.com") { oSession["ui-hide"] = "true"; } if (myFreeHttpWindow.IsRequestRuleEnable) { //IsRequestRuleEnable is more efficient then string comparison (so if not IsRequestRuleEnable the string comparison will not execute) if (IsSkipUiHide && oSession["ui-hide"] != null) { return; } if (IsSkipConnectTunnels && oSession.RequestMethod == "CONNECT") { return; } List matchItems = FiddlerSessionHelper.FindMatchTanperRule(oSession, myFreeHttpWindow.FiddlerRequestChangeList,true); if (matchItems != null && matchItems.Count>0) { foreach (var matchItem in matchItems) { FiddlerRequestChange nowFiddlerRequsetChange = ((FiddlerRequestChange)matchItem); ListViewItem tempListViewItem = myFreeHttpWindow.FindListViewItemFromRule(matchItem); FreeHttpWindow.MarkMatchRule(tempListViewItem); MarkSession(oSession); ShowMes(string.Format("macth the [requst rule {0}] with {1}", tempListViewItem.SubItems[0].Text, oSession.fullUrl)); FiddlerSessionTamper.ModificSessionRequest(oSession, nowFiddlerRequsetChange,ShowError,ShowMes); if(IsOnlyMatchFistTamperRule) { break; } } } } if (myFreeHttpWindow.IsResponseRuleEnable) { if (IsSkipConnectTunnels && oSession.RequestMethod == "CONNECT") { return; } List matchItems = FiddlerSessionHelper.FindMatchTanperRule(oSession, myFreeHttpWindow.FiddlerResponseChangeList,false); if (matchItems != null && matchItems.Count>0) { oSession.bBufferResponse = true;// if any response rule may match the Session, we should set bBufferResponse true (When streaming is enabled for a response, each block of data read from the server is immediately passed to the client application. ) foreach (var matchItem in matchItems) { FiddlerResponseChange nowFiddlerResponseChange = ((FiddlerResponseChange)matchItem); ListViewItem tempListViewItem = myFreeHttpWindow.FindListViewItemFromRule(matchItem); if (nowFiddlerResponseChange.IsIsDirectRespons) { FreeHttpWindow.MarkMatchRule(tempListViewItem); MarkSession(oSession); ShowMes(string.Format("macth the [reponse rule {0}] with {1}", tempListViewItem.SubItems[0].Text, oSession.fullUrl)); FiddlerSessionTamper.ReplaceSessionResponse(oSession, nowFiddlerResponseChange,ShowError,ShowMes); //oSession.state = SessionStates.Done; if (IsOnlyMatchFistTamperRule) { break; } } } } } } public void AutoTamperResponseAfter(Session oSession) { if (!isOnLoad) { return; } if (myFreeHttpWindow.IsResponseRuleEnable) { if (IsSkipUiHide && oSession["ui-hide"] !=null) { return; } if (IsSkipConnectTunnels && oSession.RequestMethod == "CONNECT") { return; } List matchItems = FiddlerSessionHelper.FindMatchTanperRule(oSession, myFreeHttpWindow.FiddlerResponseChangeList,false); if (matchItems != null && matchItems.Count>0) { foreach (var matchItem in matchItems) { FiddlerResponseChange nowFiddlerResponseChange = ((FiddlerResponseChange)matchItem); ListViewItem tempListViewItem = myFreeHttpWindow.FindListViewItemFromRule(matchItem); if (!(nowFiddlerResponseChange.IsRawReplace && nowFiddlerResponseChange.IsIsDirectRespons)) { FreeHttpWindow.MarkMatchRule(tempListViewItem); MarkSession(oSession); ShowMes(string.Format("macth the [reponse rule {0}] with {1}", tempListViewItem.SubItems[0].Text, oSession.fullUrl)); FiddlerSessionTamper.ModificSessionResponse(oSession, nowFiddlerResponseChange,ShowError,ShowMes); } if (nowFiddlerResponseChange.ResponseLatency > 0) { ShowMes(string.Format("[reponse rule {0}] is modified , now delay {1} ms", tempListViewItem.SubItems[0].Text, nowFiddlerResponseChange.ResponseLatency)); System.Threading.Thread.Sleep(nowFiddlerResponseChange.ResponseLatency); } if (IsOnlyMatchFistTamperRule) { break; } } } } } public void AutoTamperResponseBefore(Session oSession) { //throw new NotImplementedException(); } public void OnBeforeReturningError(Session oSession) { this.AutoTamperResponseAfter(oSession); } public void Dispose() { tabPage.Dispose(); myFreeHttpWindow.Dispose(); } } } ================================================ FILE: FiddlerHelper/FiddlerActuatorStaticDataCollectionController.cs ================================================ using FreeHttp.AutoTest.RunTimeStaticData; using FreeHttp.AutoTest.RunTimeStaticData.MyStaticData; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.FiddlerHelper { public class FiddlerActuatorStaticDataCollectionController { public ActuatorStaticDataCollection actuatorStaticDataCollection; public FiddlerActuatorStaticDataCollectionController(ActuatorStaticDataCollection yourStaticDataCollection) { actuatorStaticDataCollection = yourStaticDataCollection; } public void SetActuatorStaticDataCollection(ActuatorStaticDataCollection yourStaticDataCollection) { actuatorStaticDataCollection = yourStaticDataCollection; } public bool SetActuatorStaticData(string key, string value) { if (actuatorStaticDataCollection == null) { return false; } IRunTimeStaticData nowStaticData = actuatorStaticDataCollection[key]; if (nowStaticData != null) { nowStaticData.DataMoveNext(); return actuatorStaticDataCollection.SetStaticDataValue(key, value); } else { return actuatorStaticDataCollection.AddStaticDataKey(key, new MyStaticDataValue(value)); } } } } ================================================ FILE: FiddlerHelper/FiddlerHttpFilter.cs ================================================ using Fiddler; using FreeHttp.AutoTest; using FreeHttp.HttpHelper; using FreeHttp.MyHelper; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; namespace FreeHttp.FiddlerHelper { public enum FiddlerUriMatchMode { Contain, StartWith, EndWith, Is, Regex, AllPass } [Serializable] [DataContract] public class FiddlerUriMatch { [DataMember] public FiddlerUriMatchMode MatchMode { get; set; } [DataMember] public String MatchUri { get; set; } public FiddlerUriMatch() { MatchMode = FiddlerUriMatchMode.AllPass; MatchUri = null; } public FiddlerUriMatch(FiddlerUriMatchMode matchMode,string matchUri) { MatchMode = matchMode; MatchUri = matchUri; } public bool Match(string matchString) { switch(MatchMode) { case FiddlerUriMatchMode.AllPass: return true; case FiddlerUriMatchMode.Contain: return (matchString.Contains(MatchUri)); case FiddlerUriMatchMode.Is: return matchString == MatchUri; case FiddlerUriMatchMode.Regex: return System.Text.RegularExpressions.Regex.IsMatch(matchString, MatchUri); case FiddlerUriMatchMode.StartWith: return matchString.StartsWith(MatchUri); case FiddlerUriMatchMode.EndWith: return matchString.EndsWith(MatchUri); default: return false; } } public bool Equals(FiddlerUriMatch targetUriMatch) { return (this.MatchMode == targetUriMatch.MatchMode && this.MatchUri == targetUriMatch.MatchUri); } public new bool Equals(object targetFiddlerHttpTamper) { IFiddlerHttpTamper fiddlerHttpTamper = targetFiddlerHttpTamper as IFiddlerHttpTamper; if(fiddlerHttpTamper== null) { return false; } return this.Equals(fiddlerHttpTamper.HttpFilter.UriMatch); } public new string ToString() { return string.Format("[{0}] {1}", MatchMode.ToString(), string.IsNullOrEmpty(MatchUri) ? "" : MatchUri); } } [Serializable] [DataContract] public class FiddlerHeadMatch { [DataMember] public List> HeadsFilter { get; set; } public FiddlerHeadMatch() { HeadsFilter = null; } public FiddlerHeadMatch(List> headsFilter) { HeadsFilter = headsFilter; } public void AddHeadMatch(MyKeyValuePair yourHeadMatch) { if(HeadsFilter==null) { HeadsFilter=new List>(); } HeadsFilter.Add(yourHeadMatch); } public bool Match(HTTPHeaders matchHeaders) { if(HeadsFilter!=null && HeadsFilter.Count>0) { foreach(MyKeyValuePair headFilter in HeadsFilter) { if(!matchHeaders.ExistsAndContains(headFilter.Key,headFilter.Value)) { return false; } } } return true; } public bool Equals(FiddlerHeadMatch yourFiddlerHeadMatch) { if (yourFiddlerHeadMatch.HeadsFilter.Count == HeadsFilter.Count) { List> HeadsFilterForEqual = HeadsFilter.MyClone(); foreach(var tempHead in yourFiddlerHeadMatch.HeadsFilter) { if(HeadsFilterForEqual.MyContains(tempHead)) { HeadsFilterForEqual.Remove(tempHead); } else { return false; } } if(HeadsFilterForEqual.Count==0) { return true; } } return false; } public new string ToString() { if (HeadsFilter == null || HeadsFilter.Count == 0) { return null; } StringBuilder tempSb = new StringBuilder(HeadsFilter.Count * 30); foreach(MyKeyValuePair tempKv in HeadsFilter) { tempSb.AppendLine(string.Format("{0} [contain] {1}", tempKv.Key, tempKv.Value)); } if(tempSb[tempSb.Length-2]=='\r'&& tempSb[tempSb.Length - 1] == '\n') { tempSb.Remove(tempSb.Length - 2, 2); } return tempSb.ToString(); } } [Serializable] [DataContract] public class FiddlerBodyMatch: FiddlerUriMatch { [DataMember] public Byte[] MatchBodyBytes { get; set; } [System.Xml.Serialization.XmlIgnore] public bool IsHexMatch{ get { return MatchBodyBytes != null; } } private string bufferBodyBytesStr; public new bool Match(string matchString) { if (IsHexMatch) { return false; } return base.Match(matchString); } public FiddlerBodyMatch() : base() { } public FiddlerBodyMatch(FiddlerUriMatchMode matchMode, string matchData) //: base(matchMode, matchUri) { if (String.IsNullOrEmpty(matchData) && matchMode != FiddlerUriMatchMode.AllPass) { throw new Exception("empty data is illegal for this mode"); } if (matchData.StartsWith("")) { if(matchMode== FiddlerUriMatchMode.Regex) { throw new Exception("Regex can not use hex mode"); } MatchBodyBytes = MyBytes.HexStringToByte(matchData.Remove(0, "".Length), HexDecimal.hex16); if((MatchBodyBytes==null || MatchBodyBytes.Length==0)&& matchMode != FiddlerUriMatchMode.AllPass) { throw new Exception("empty data is illegal for this mode"); } MatchMode = matchMode; MatchUri = string.Format("{0}", BitConverter.ToString(MatchBodyBytes)); } else { MatchMode = matchMode; MatchUri = matchData; } } public static FiddlerBodyMatch GetFiddlerBodyMatch(FiddlerUriMatchMode matchMode, string matchData) { try { return new FiddlerBodyMatch(matchMode, matchData); } catch { } return null; } public bool Match(Byte[] matchBytes) { if(MatchBodyBytes==null && MatchBodyBytes.Length==0) { return false; } if (bufferBodyBytesStr == null) { bufferBodyBytesStr = BitConverter.ToString(MatchBodyBytes); } string matchString= BitConverter.ToString(matchBytes); switch (MatchMode) { case FiddlerUriMatchMode.AllPass: return true; case FiddlerUriMatchMode.Contain: return (matchString.Contains(bufferBodyBytesStr)); case FiddlerUriMatchMode.Is: return matchString == bufferBodyBytesStr; case FiddlerUriMatchMode.Regex: return false; case FiddlerUriMatchMode.StartWith: return matchString.StartsWith(bufferBodyBytesStr); default: return false; } } } [Serializable] [DataContract] public class FiddlerHttpFilter { [DataMember] public string Name { get; set; } [DataMember] public FiddlerUriMatch UriMatch { get; set; } //UriMatch must not be null [DataMember] public FiddlerHeadMatch HeadMatch { get; set; } [DataMember] public FiddlerBodyMatch BodyMatch { get; set; } public FiddlerHttpFilter() { UriMatch = null; } public FiddlerHttpFilter(FiddlerUriMatch uriMatch) { UriMatch = uriMatch; } public bool Match(Session oSession, bool isRequest, WebSocketMessage webSocketMessage = null) { bool isWebSocket = webSocketMessage != null;// oSession.BitFlags.HasFlag(SessionFlags.IsWebSocketTunnel); bool isMatch = true; if (isWebSocket) { if(!oSession.BitFlags.HasFlag(SessionFlags.IsWebSocketTunnel)) { return false; } if(!((isRequest && webSocketMessage.IsOutbound) || (!isRequest && !webSocketMessage.IsOutbound))) { return false; } if (!UriMatch.Match(oSession.fullUrl)) { return false; } if (BodyMatch != null) { if (webSocketMessage.FrameType == WebSocketFrameTypes.Binary && BodyMatch.IsHexMatch) { if(! BodyMatch.Match(webSocketMessage.PayloadAsBytes())) { return false; } } else if (webSocketMessage.FrameType == WebSocketFrameTypes.Text && !BodyMatch.IsHexMatch) { if (!BodyMatch.Match(webSocketMessage.PayloadAsString())) { return false; } } else if(webSocketMessage.FrameType == WebSocketFrameTypes.Continuation) { //延续帧 return false; } else { return false; } } } else { if (UriMatch != null) { if (!UriMatch.Match(oSession.fullUrl)) { return false; } } if (HeadMatch != null) { if (!HeadMatch.Match(true ? (HTTPHeaders)oSession.RequestHeaders : (HTTPHeaders)oSession.ResponseHeaders)) { return false; } } if (BodyMatch != null) { if (BodyMatch.IsHexMatch) { if (!BodyMatch.Match(true ? oSession.requestBodyBytes : oSession.responseBodyBytes)) { return false; } } else { if (!BodyMatch.Match(true ? oSession.GetRequestBodyAsString() : oSession.GetResponseBodyAsString())) { return false; } } } } return isMatch; } public bool Equals(FiddlerHttpFilter yourFiddlerHttpFilter) { if (!UriMatch.Equals(yourFiddlerHttpFilter.UriMatch)) { return false; } if ((HeadMatch == null || yourFiddlerHttpFilter.HeadMatch == null) && (!(HeadMatch == null && yourFiddlerHttpFilter.HeadMatch == null))) { return false; } if (HeadMatch != null && yourFiddlerHttpFilter.HeadMatch != null) { if(!HeadMatch.Equals(yourFiddlerHttpFilter.HeadMatch)) { return false; } } if ((BodyMatch == null || yourFiddlerHttpFilter.BodyMatch == null) && (!(BodyMatch == null && yourFiddlerHttpFilter.BodyMatch == null))) { return false; } if (BodyMatch != null && yourFiddlerHttpFilter.BodyMatch != null) { if (!BodyMatch.Equals(yourFiddlerHttpFilter.BodyMatch)) { return false; } } return true; } public new bool Equals(object targetFiddlerHttpFilter) { IFiddlerHttpTamper fiddlerHttpTamper = targetFiddlerHttpFilter as IFiddlerHttpTamper; if (fiddlerHttpTamper == null) { return false; } return this.Equals(fiddlerHttpTamper.HttpFilter); } public string GetShowTitle() { if (!String.IsNullOrEmpty(this.Name)) { return this.Name; } if (this.UriMatch != null) { return string.Format("【{0}】: {1}", this.UriMatch.MatchMode.ToString(), this.UriMatch.MatchUri); } return default; } public new string ToString() { StringBuilder tempSb = new StringBuilder(string.Format("Uri:\r\n{0}\r\n",UriMatch.ToString())); if(HeadMatch!=null) { tempSb.AppendLine(string.Format("Heads:\r\n{0}", HeadMatch.ToString())); } if(BodyMatch!=null) { tempSb.AppendLine(string.Format("Body:\r\n{0}", BodyMatch.ToString())); } return tempSb.ToString(); } } } ================================================ FILE: FiddlerHelper/FiddlerModificHttpRuleCollection.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.FiddlerHelper { [Serializable] public class FiddlerModificHttpRuleCollection { List requestRuleList; List responseRuleList; public List RequestRuleList { get { return requestRuleList; } set { requestRuleList = value; } } public List ResponseRuleList { get { return responseRuleList; } set { responseRuleList = value; } } public FiddlerModificHttpRuleCollection() // Serializable 需要空参数的构造函数 { requestRuleList = null; responseRuleList = null; } public FiddlerModificHttpRuleCollection(List yourRequestRuleList, List yourResponseRuleList) { requestRuleList = yourRequestRuleList; responseRuleList = yourResponseRuleList; } } } ================================================ FILE: FiddlerHelper/FiddlerModificSettingInfo.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.FiddlerHelper { [Serializable] public class FiddlerModificSettingInfo { /// /// the rule will skip tls handshake when it is true /// public bool IsSkipConnectTunnels { get; set; } = true; /// /// if it is true the FiddlerFreeHttp will only match the fist request or response rule /// public bool IsOnlyMatchFirstTamperRule { get; set; } = false; /// /// if it is sync TamperRule in server /// public bool IsSyncTamperRule { get; set; } = true; /// /// if it is hide freehttp self session /// public bool IsHideSelfSession { get; set; } = true; /// /// is skip when the session is hide /// public bool IsSkipUiHide { get; set; } = true; /// /// is enable request rule when the application load /// public bool IsEnableRequestRule { get; set; } /// /// is enable response rule when the application load /// public bool IsEnableResponseRule { get; set; } /// /// user token /// public string UserToken { get; set; } /// /// message flag /// public List ReadedMessageFlags { get; set; } public FiddlerModificSettingInfo():this(true, false ,true,true) { } public FiddlerModificSettingInfo( bool isSkipTlsHandshake, bool isOnlyMatchFirstTamperRule ,bool isSyncTamperRule, bool isSkipUiHide,bool isHideSelfSession = true ,bool isEnableRequestRule = false, bool isEnableResponseRule = false ,string userToken=null) { IsSkipConnectTunnels = isSkipTlsHandshake; IsOnlyMatchFirstTamperRule = isOnlyMatchFirstTamperRule; IsSyncTamperRule = isSyncTamperRule ; IsSkipUiHide = isSkipUiHide; IsHideSelfSession = isHideSelfSession; IsEnableRequestRule = isEnableRequestRule; IsEnableResponseRule = isEnableResponseRule; UserToken = userToken; ReadedMessageFlags = new List(); } } } ================================================ FILE: FiddlerHelper/FiddlerRequsetChange.cs ================================================ using FreeHttp.AutoTest.ParameterizationPick; using FreeHttp.AutoTest.RunTimeStaticData; using FreeHttp.AutoTest.RunTimeStaticData.MyStaticData; using FreeHttp.HttpHelper; using FreeHttp.MyHelper; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; namespace FreeHttp.FiddlerHelper { [Serializable] [System.Runtime.Serialization.DataContract()] public class FiddlerRequestChange : IFiddlerHttpTamper { private string _uid; /// /// get rule uid (not set this vaule in your business code) /// [DataMember] public string RuleUid { get { if(_uid==null) { _uid = Guid.NewGuid().ToString("D"); } return _uid; } set { _uid = value; } } [DataMember] public bool IsEnable { get; set; } [DataMember] public bool IsHasParameter { get ; set; } [DataMember] public TamperProtocalType TamperProtocol { get ; set ; } [DataMember] public FiddlerHttpFilter HttpFilter{ get; set; } [DataMember] public List ParameterPickList { get; set; } [DataMember] public ParameterHttpRequest HttpRawRequest { get; set; } [DataMember] public ParameterContentModific UriModific { get; set; } [DataMember] public List HeadAddList { get; set; } [DataMember] public List HeadDelList { get; set; } [DataMember] public ParameterContentModific BodyModific { get; set; } //[NonSerialized] [System.Xml.Serialization.XmlIgnore] public object Tag { get; set; } [System.Xml.Serialization.XmlIgnore] public FiddlerActuatorStaticDataCollectionController ActuatorStaticDataController { get; set; } public bool IsRawReplace { get { return HttpRawRequest != null; } } public void SetHasParameter(bool hasParameter , ActuatorStaticDataCollection staticDataController = null) { if(staticDataController!=null) { ActuatorStaticDataController = new FiddlerActuatorStaticDataCollectionController(staticDataController); } IsHasParameter = hasParameter; if(IsRawReplace) { if(HttpRawRequest!=null) { HttpRawRequest.SetUseParameterInfo(IsHasParameter, ActuatorStaticDataController.actuatorStaticDataCollection); } } else { if (UriModific != null && UriModific.ModificMode != ContentModificMode.NoChange) { UriModific.SetUseParameterInfo(IsHasParameter, ActuatorStaticDataController.actuatorStaticDataCollection); } if (BodyModific != null && BodyModific.ModificMode != ContentModificMode.NoChange) { BodyModific.SetUseParameterInfo(IsHasParameter, ActuatorStaticDataController.actuatorStaticDataCollection); } } } public object Clone() { FiddlerRequestChange cloneFiddlerRequestChange = this.MyDeepClone(); cloneFiddlerRequestChange?.SetHasParameter(IsHasParameter, ActuatorStaticDataController?.actuatorStaticDataCollection); return cloneFiddlerRequestChange; } } } ================================================ FILE: FiddlerHelper/FiddlerResponseChange.cs ================================================ using FreeHttp.AutoTest.ParameterizationPick; using FreeHttp.AutoTest.RunTimeStaticData; using FreeHttp.AutoTest.RunTimeStaticData.MyStaticData; using FreeHttp.HttpHelper; using FreeHttp.MyHelper; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; namespace FreeHttp.FiddlerHelper { [Serializable] [System.Runtime.Serialization.DataContract()] public class FiddlerResponseChange : IFiddlerHttpTamper { private string _uid; /// /// get rule uid (not set this vaule in your business code) /// [DataMember] public string RuleUid { get { if (_uid == null) { _uid = Guid.NewGuid().ToString("D"); } return _uid; } set { _uid = value; } } [DataMember] public bool IsEnable { get; set; } [DataMember] public bool IsHasParameter { get; set; } [DataMember] public TamperProtocalType TamperProtocol { get; set; } [DataMember] public FiddlerHttpFilter HttpFilter { get; set; } [DataMember] public List ParameterPickList { get; set; } [DataMember] public ParameterHttpResponse HttpRawResponse { get; set; } [DataMember] public bool IsIsDirectRespons { get; set; } //only for HttpRawResponse [DataMember] public int ResponseLatency { get; set; } [DataMember] public List HeadAddList { get; set; } [DataMember] public List HeadDelList { get; set; } [DataMember] public ParameterContentModific BodyModific { get; set; } //[NonSerialized] [System.Xml.Serialization.XmlIgnore] public object Tag { get; set; } [System.Xml.Serialization.XmlIgnore] public FiddlerActuatorStaticDataCollectionController ActuatorStaticDataController { get; set; } public bool IsRawReplace { get { return HttpRawResponse != null; } } public void SetHasParameter(bool hasParameter, ActuatorStaticDataCollection staticDataController = null) { if (staticDataController != null) { ActuatorStaticDataController = new FiddlerActuatorStaticDataCollectionController(staticDataController); } IsHasParameter = hasParameter; if (IsRawReplace) { if (HttpRawResponse != null) { HttpRawResponse.SetUseParameterInfo(IsHasParameter, ActuatorStaticDataController.actuatorStaticDataCollection); } } else { if (BodyModific != null && BodyModific.ModificMode != ContentModificMode.NoChange) { BodyModific.SetUseParameterInfo(IsHasParameter, ActuatorStaticDataController.actuatorStaticDataCollection); } } } public object Clone() { FiddlerResponseChange cloneFiddlerResponseChange = this.MyDeepClone(); cloneFiddlerResponseChange?.SetHasParameter(IsHasParameter, ActuatorStaticDataController?.actuatorStaticDataCollection); return cloneFiddlerResponseChange; } } } ================================================ FILE: FiddlerHelper/FiddlerRuleGroup.cs ================================================ using FreeHttp.WebService; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FiddlerHelper { [Serializable] [System.Runtime.Serialization.DataContract()] public class FiddlerRuleGroup { private ListView RequestRuleListView; private ListView ResponseRuleListView; private bool _isRequestRuleGroupInTemporaryStatus = false; private bool _isResponseRuleGroupInTemporaryStatus = false; [DataMember] public Dictionary> RequestGroupDictionary { get; set; } [DataMember] public Dictionary> ResponseGroupDictionary { get; set; } public FiddlerRuleGroup(ListView rqLv,ListView rpLv) { RequestRuleListView = rqLv; ResponseRuleListView = rpLv; RequestGroupDictionary = new Dictionary>(); ResponseGroupDictionary = new Dictionary>(); } public bool IsEmpty { get { return (RequestGroupDictionary == null || RequestGroupDictionary.Count == 0) && (ResponseGroupDictionary == null || ResponseGroupDictionary.Count == 0); } } public void SetRuleGroupListView(ListView rqLv, ListView rpLv) { RequestRuleListView = rqLv; ResponseRuleListView = rpLv; } /// /// 重排listView顺序(因为在存在分组的情况下拖拽排序会不生效,所以需要强制刷新,任何地方都不要自行调用该方法修改ListView) /// /// private void ReflushListViewItem(ListView listView) { List listViewItems = new List(); foreach (ListViewItem itm in listView.Items) { listViewItems.Add(itm); } listView.Items.Clear(); foreach (ListViewItem itm in listViewItems) { listView.Items.Add(itm); } } /// /// 更新GroupDictionary /// /// 选择更新指定ListView(默认null表示全部更新) public void ReflushGroupDc(ListView listView=null) { if (RequestRuleListView == listView || listView==null) { RequestGroupDictionary.Clear(); if (RequestRuleListView.Groups != null && RequestRuleListView.Groups.Count > 0) { foreach (ListViewGroup listViewGroup in RequestRuleListView.Groups) { List ruleUidList = new List(); foreach (ListViewItem listViewItem in listViewGroup.Items) { ruleUidList.Add(((IFiddlerHttpTamper)listViewItem.Tag).RuleUid); } if (RequestGroupDictionary.ContainsKey(listViewGroup.Header)) { _ = RemoteLogService.ReportLogAsync($"find same key :{listViewGroup.Header} in[ReflushGroupDc]", RemoteLogService.RemoteLogOperation.EditRule, RemoteLogService.RemoteLogType.Error); } else { RequestGroupDictionary.Add(listViewGroup.Header, ruleUidList); } } } } if (ResponseRuleListView == listView || listView == null) { ResponseGroupDictionary.Clear(); if (ResponseRuleListView.Groups != null && ResponseRuleListView.Groups.Count > 0) { foreach (ListViewGroup listViewGroup in ResponseRuleListView.Groups) { List ruleUidList = new List(); foreach (ListViewItem listViewItem in listViewGroup.Items) { ruleUidList.Add(((IFiddlerHttpTamper)listViewItem.Tag).RuleUid); } if (ResponseGroupDictionary.ContainsKey(listViewGroup.Header)) { _ = RemoteLogService.ReportLogAsync($"find same key :{listViewGroup.Header} in[ReflushGroupDc]", RemoteLogService.RemoteLogOperation.EditRule, RemoteLogService.RemoteLogType.Error); } else { ResponseGroupDictionary.Add(listViewGroup.Header, ruleUidList); } } } } } /// /// 对item进行重新排列,在有group且顺序发送变化时需要重排 /// /// public void ReArrangeGroup(ListView listView = null) { if (RequestRuleListView == listView || listView == null) { FreeHttpControl.MyControlHelper.SetControlFreeze(RequestRuleListView); RemoveGroupTemporary(RequestRuleListView); RecoverTemporaryGroup(RequestRuleListView); FreeHttpControl.MyControlHelper.SetControlUnfreeze(RequestRuleListView); } if (ResponseRuleListView == listView || listView == null) { FreeHttpControl.MyControlHelper.SetControlFreeze(ResponseRuleListView); RemoveGroupTemporary(ResponseRuleListView); RecoverTemporaryGroup(ResponseRuleListView); FreeHttpControl.MyControlHelper.SetControlUnfreeze(ResponseRuleListView); } } /// /// 临时移除分组,需要与RecoverTemporaryGroup配合使用 /// /// public void RemoveGroupTemporary(ListView listView) { if (RequestRuleListView == listView) { if (_isRequestRuleGroupInTemporaryStatus) return; if (RequestRuleListView.Groups != null && RequestRuleListView.Groups.Count > 0) { ReflushGroupDc(RequestRuleListView); RequestRuleListView.Groups.Clear(); foreach(ListViewItem listViewItem in listView.Items) { listViewItem.Group = null; } _isRequestRuleGroupInTemporaryStatus = true; } } else if (ResponseRuleListView == listView) { if (_isResponseRuleGroupInTemporaryStatus) return; if (ResponseRuleListView.Groups != null && ResponseRuleListView.Groups.Count > 0) { ReflushGroupDc(ResponseRuleListView); ResponseRuleListView.Groups.Clear(); foreach (ListViewItem listViewItem in listView.Items) { listViewItem.Group = null; } _isResponseRuleGroupInTemporaryStatus = true; } } else { _ = RemoteLogService.ReportLogAsync("unknow listView in [RemoveGroupTemporary]", RemoteLogService.RemoteLogOperation.EditRule, RemoteLogService.RemoteLogType.Error); } } /// /// 恢复分组 /// /// /// 是否检查_isRequestRuleGroupInTemporaryStatus/_isResponseRuleGroupInTemporaryStatus状态,如果不检查即直接恢复 public void RecoverTemporaryGroup(ListView listView ,bool isCheckStatuus = true) { if (RequestRuleListView == listView) { if (!_isRequestRuleGroupInTemporaryStatus && isCheckStatuus) return; if (!isCheckStatuus) listView.Groups.Clear(); //如果不检查状态需要清除listView自己的Groups,以免照成重复,或空的Groups。 if (RequestGroupDictionary != null && RequestGroupDictionary.Count > 0) { ReflushListViewItem(listView); Dictionary tempIdGroupDc = new Dictionary(); foreach (var kv in RequestGroupDictionary) { ListViewGroup tempListViewGroup = new ListViewGroup(kv.Key); listView.Groups.Add(tempListViewGroup); foreach (var tempUid in kv.Value) { try { tempIdGroupDc.Add(tempUid, tempListViewGroup); } catch(Exception ex) { _ = RemoteLogService.ReportLogAsync($"error in [RecoverTemporaryGroup] :{ex}", RemoteLogService.RemoteLogOperation.EditRule, RemoteLogService.RemoteLogType.Error); } } } if(tempIdGroupDc.Count>0) { foreach(ListViewItem listViewItem in listView.Items) { if(tempIdGroupDc.ContainsKey(((IFiddlerHttpTamper)listViewItem.Tag).RuleUid)) { listViewItem.Group = tempIdGroupDc[((IFiddlerHttpTamper)listViewItem.Tag).RuleUid]; } } } ((FreeHttpControl.MyListView)listView).SetGroupState(FreeHttpControl.ListViewGroupState.Collapsible); _isRequestRuleGroupInTemporaryStatus = false; } } else if (ResponseRuleListView == listView) { if (!_isResponseRuleGroupInTemporaryStatus && isCheckStatuus) return; if (!isCheckStatuus) listView.Groups.Clear(); if (ResponseGroupDictionary != null && ResponseGroupDictionary.Count > 0) { ReflushListViewItem(listView); Dictionary tempIdGroupDc = new Dictionary(); foreach (var kv in ResponseGroupDictionary) { ListViewGroup tempListViewGroup = new ListViewGroup(kv.Key); listView.Groups.Add(tempListViewGroup); foreach (var tempUid in kv.Value) { try { tempIdGroupDc.Add(tempUid, tempListViewGroup); } catch (Exception ex) { _ = RemoteLogService.ReportLogAsync($"error in [RecoverTemporaryGroup] :{ex}", RemoteLogService.RemoteLogOperation.EditRule, RemoteLogService.RemoteLogType.Error); } } } if (tempIdGroupDc.Count > 0) { foreach (ListViewItem listViewItem in listView.Items) { if (tempIdGroupDc.ContainsKey(((IFiddlerHttpTamper)listViewItem.Tag).RuleUid)) { listViewItem.Group = tempIdGroupDc[((IFiddlerHttpTamper)listViewItem.Tag).RuleUid]; } } } ((FreeHttpControl.MyListView)listView).SetGroupState(FreeHttpControl.ListViewGroupState.Collapsible); _isResponseRuleGroupInTemporaryStatus = false; } } else { _ = RemoteLogService.ReportLogAsync("unknow listView in [RecoverTemporaryGroup]", RemoteLogService.RemoteLogOperation.EditRule, RemoteLogService.RemoteLogType.Error); } } /// /// 恢复分组信息(首次加载时可以用于还原保存的上一次分组) /// public void RecoverGroup() { RecoverTemporaryGroup(RequestRuleListView, false); RecoverTemporaryGroup(ResponseRuleListView, false); } } } ================================================ FILE: FiddlerHelper/FiddlerSessionHelper.cs ================================================ using Fiddler; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.FiddlerHelper { class FiddlerSessionHelper { /// /// 在指定rule列表中寻找匹配rule列表 /// /// IFiddlerHttpTamper 类型 /// 目标oSession /// 目标rule列表 /// 是否是request (如果不是则为response) /// 是否为WebSocket规则 /// 匹配成功的rule列表 public static List FindMatchTanperRule(Session oSession, List ruleList,bool isRequest,WebSocketMessage webSocketMessage = null) where T : IFiddlerHttpTamper { if (oSession == null || ruleList == null || ruleList.Count == 0) { return null; } List matchRuleList = new List(); bool isMatchWebsocket = webSocketMessage != null; foreach (IFiddlerHttpTamper tempItem in ruleList) { if (!tempItem.IsEnable) { continue; } if (isMatchWebsocket) { if (tempItem.TamperProtocol == TamperProtocalType.Http) { continue; } if (!oSession.BitFlags.HasFlag(SessionFlags.IsWebSocketTunnel)) { continue; } if (tempItem.HttpFilter.Match(oSession, isRequest, webSocketMessage)) { matchRuleList.Add(tempItem); } } else { if (tempItem.TamperProtocol == TamperProtocalType.WebSocket) { continue; } if (tempItem.HttpFilter.Match(oSession, isRequest)) { matchRuleList.Add(tempItem); } } } return matchRuleList; } } } ================================================ FILE: FiddlerHelper/IFiddlerHttpTamper.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.FiddlerHelper { public interface IFiddlerHttpTamper:ICloneable { string RuleUid { get; set; } bool IsEnable { get; set; } bool IsHasParameter { get; set; } TamperProtocalType TamperProtocol { get; set; } FiddlerHttpFilter HttpFilter { get; set; } List ParameterPickList { get; set; } FiddlerActuatorStaticDataCollectionController ActuatorStaticDataController { get; set; } bool IsRawReplace { get; } } } ================================================ FILE: FiddlerHelper/TamperProtocalType.cs ================================================  namespace FreeHttp.FiddlerHelper { public enum TamperProtocalType { Http, WebSocket } } ================================================ FILE: FiddlerHelper/VersionControl/FiddlerModificHttpRuleCollectionV1.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //using FiddlerRequsetChange = FreeHttp.FiddlerHelper.FiddlerRequestChange; namespace FreeHttp.FiddlerHelper.VersionControlV1 { [Serializable] public class FiddlerModificHttpRuleCollection { List requestRuleList; List responseRuleList; //因为V1.0-V1.3 版本 FiddlerRequsetChange 这个英文拼错了 这里进行进行升级修复 public List RequestRuleList { get { return requestRuleList; } set { requestRuleList = value; } } public List ResponseRuleList { get { return responseRuleList; } set { responseRuleList = value; } } public FiddlerModificHttpRuleCollection() // Serializable 需要空参数的构造函数 { requestRuleList = null; responseRuleList = null; } public FiddlerModificHttpRuleCollection(List yourRequestRuleList, List yourResponseRuleList) { requestRuleList = yourRequestRuleList; responseRuleList = yourResponseRuleList; } public static explicit operator FreeHttp.FiddlerHelper.FiddlerModificHttpRuleCollection(FiddlerModificHttpRuleCollection fiddlerModificHttpRuleCollectionV1) { List RequestRuleList = new List(); if(fiddlerModificHttpRuleCollectionV1.RequestRuleList!=null && fiddlerModificHttpRuleCollectionV1.RequestRuleList.Count>0) { foreach(FiddlerRequsetChange item in fiddlerModificHttpRuleCollectionV1.RequestRuleList) { RequestRuleList.Add(item.GetBase()); } } FreeHttp.FiddlerHelper.FiddlerModificHttpRuleCollection fiddlerModificHttpRuleCollection = new FreeHttp.FiddlerHelper.FiddlerModificHttpRuleCollection(RequestRuleList, fiddlerModificHttpRuleCollectionV1.ResponseRuleList); if(fiddlerModificHttpRuleCollection.RequestRuleList!=null && fiddlerModificHttpRuleCollection.RequestRuleList.Count>0) { foreach (FiddlerRequestChange item in fiddlerModificHttpRuleCollection.RequestRuleList) { if(item.UriModific!=null && item.UriModific.ModificMode != HttpHelper.ContentModificMode.NoChange) { item.UriModific.ParameterReplaceContent = new AutoTest.ParameterizationContent.CaseParameterizationContent(item.UriModific.ReplaceContent); item.UriModific.ParameterTargetKey = new AutoTest.ParameterizationContent.CaseParameterizationContent(item.UriModific.TargetKey); } if (item.BodyModific != null && item.BodyModific.ModificMode != HttpHelper.ContentModificMode.NoChange) { item.BodyModific.ParameterReplaceContent = new AutoTest.ParameterizationContent.CaseParameterizationContent(item.BodyModific.ReplaceContent); item.BodyModific.ParameterTargetKey = new AutoTest.ParameterizationContent.CaseParameterizationContent(item.BodyModific.TargetKey); } if(item.IsRawReplace && item.HttpRawRequest.ParameterizationContent.hasParameter) { item.IsHasParameter = true; //item.SetHasParameter(true); } } } if (fiddlerModificHttpRuleCollection.ResponseRuleList != null && fiddlerModificHttpRuleCollection.ResponseRuleList.Count > 0) { foreach (FiddlerResponseChange item in fiddlerModificHttpRuleCollection.ResponseRuleList) { if (item.BodyModific != null && item.BodyModific.ModificMode != HttpHelper.ContentModificMode.NoChange) { item.BodyModific.ParameterReplaceContent = new AutoTest.ParameterizationContent.CaseParameterizationContent(item.BodyModific.ReplaceContent); item.BodyModific.ParameterTargetKey = new AutoTest.ParameterizationContent.CaseParameterizationContent(item.BodyModific.TargetKey); } if (item.IsRawReplace && item.HttpRawResponse.ParameterizationContent.hasParameter) { item.IsHasParameter = true; //item.SetHasParameter(true); } } } return fiddlerModificHttpRuleCollection; } } [Serializable] [System.Runtime.Serialization.DataContract()] public class FiddlerRequsetChange : FiddlerRequestChange { public FiddlerRequestChange GetBase() { FiddlerRequestChange fiddlerRequestChange = new FiddlerRequestChange(); fiddlerRequestChange.IsEnable = IsEnable; fiddlerRequestChange.TamperProtocol = TamperProtocol; fiddlerRequestChange.HttpFilter = HttpFilter; fiddlerRequestChange.ParameterPickList = ParameterPickList; fiddlerRequestChange.HttpRawRequest = HttpRawRequest; fiddlerRequestChange.UriModific = UriModific; fiddlerRequestChange.HeadAddList = HeadAddList; fiddlerRequestChange.HeadDelList = HeadDelList; fiddlerRequestChange.BodyModific = BodyModific; fiddlerRequestChange.Tag = Tag; fiddlerRequestChange.ActuatorStaticDataController = ActuatorStaticDataController; return fiddlerRequestChange; } } } ================================================ FILE: FiddlerSessionTamper.cs ================================================ using Fiddler; using FreeHttp.FiddlerHelper; using FreeHttp.HttpHelper; using FreeHttp.AutoTest; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using FreeHttp.AutoTest.ParameterizationPick; namespace FreeHttp { public class FiddlerSessionTamper { /// /// Modific the http request in oSession with your rule /// /// oSession /// FiddlerRequsetChange public static void ModificSessionRequest(Session oSession, FiddlerRequestChange nowFiddlerRequsetChange, Action ShowError, Action ShowMes) { if (nowFiddlerRequsetChange.ParameterPickList != null) { PickSessionParameter(oSession, nowFiddlerRequsetChange, ShowError, ShowMes, true); } if (nowFiddlerRequsetChange.IsRawReplace) { ReplaceSessionRequest(oSession, nowFiddlerRequsetChange, ShowError, ShowMes); } else { string errMes; NameValueCollection nameValueCollection = new NameValueCollection(); //Modific uri if (nowFiddlerRequsetChange.UriModific != null && nowFiddlerRequsetChange.UriModific.ModificMode != ContentModificMode.NoChange) { try { oSession.fullUrl = nowFiddlerRequsetChange.UriModific.GetFinalContent(oSession.fullUrl, nameValueCollection, out errMes); } catch(Exception ex) { errMes = ex.Message; } if(errMes!=null) { ShowError(string.Format("error in GetFinalContent in UriModific that [{0}]", errMes)); } } //Modific body if (nowFiddlerRequsetChange.BodyModific != null && nowFiddlerRequsetChange.BodyModific.ModificMode != ContentModificMode.NoChange) { if (nowFiddlerRequsetChange.BodyModific.ModificMode == ContentModificMode.HexReplace) { try { oSession.RequestBody = nowFiddlerRequsetChange.BodyModific.GetFinalContent(oSession.requestBodyBytes); } catch (Exception ex) { ShowError(string.Format("error in GetFinalContent in HexReplace with [{0}]", ex.Message)); } } else { string sourceRequestBody = null; try //GetRequestBodyAsString may throw exception { //oSession.utilDecodeRequest(); sourceRequestBody = oSession.GetRequestBodyAsString(); } catch (Exception ex) { ShowError(string.Format("error in GetRequestBodyAsString [{0}]", ex.Message)); oSession.utilDecodeRequest(); sourceRequestBody = oSession.GetRequestBodyEncoding().GetString(oSession.requestBodyBytes); } finally { if (nowFiddlerRequsetChange.BodyModific.ModificMode == ContentModificMode.ReCode) { try { oSession.RequestBody = nowFiddlerRequsetChange.BodyModific.GetRecodeContent(sourceRequestBody); } catch (Exception ex) { ShowError(string.Format("error in GetRecodeContent in ReCode with [{0}]", ex.Message)); } } else { //oSession.requestBodyBytes = oSession.GetRequestBodyEncoding().GetBytes(nowFiddlerRequsetChange.BodyModific.GetFinalContent(sourceRequestBody)); // requestBodyBytes直接修改内部成员 //oSession.ResponseBody = oSession.GetRequestBodyEncoding().GetBytes(nowFiddlerRequsetChange.BodyModific.GetFinalContent(sourceRequestBody)); //ResponseBody修改内部成员 更新Content-Length ,同时删除编码头,适用于hex数据 //Session.RequestBody : Gets or Sets the HTTP Request body bytes. Setter adjusts Content-Length header, and removes Transfer-Encoding and Content-Encoding headers. Setter DOES NOT CLONE the passed array. Setter will throw if the Request object does not exist for some reason. Use utilSetRequestBody(sStr) to ensure proper character encoding if you need to use a string. //oSession.utilSetRequestBody(nowFiddlerRequsetChange.BodyModific.GetFinalContent(sourceRequestBody)); //utilSetRequestBody 虽然会自动更新Content-Length 但是会强制使用utf8 ,适用于字符串 string tempRequestBody = nowFiddlerRequsetChange.BodyModific.GetFinalContent(sourceRequestBody, nameValueCollection, out errMes); if (errMes != null) { ShowError(string.Format("error in GetFinalContent in BodyModific that [{0}]", errMes)); } if (tempRequestBody != sourceRequestBody) { oSession.utilSetRequestBody(tempRequestBody); } } } } } //Modific heads if (nowFiddlerRequsetChange.HeadDelList != null && nowFiddlerRequsetChange.HeadDelList.Count > 0) { foreach (var tempDelHead in nowFiddlerRequsetChange.HeadDelList) { oSession.RequestHeaders.Remove(tempDelHead); } } if (nowFiddlerRequsetChange.HeadAddList != null && nowFiddlerRequsetChange.HeadAddList.Count > 0) { foreach (var tempAddHead in nowFiddlerRequsetChange.HeadAddList) { if (tempAddHead.Contains(": ")) { oSession.RequestHeaders.Add(tempAddHead.Remove(tempAddHead.IndexOf(": ")), tempAddHead.Substring(tempAddHead.IndexOf(": ") + 2)); } else { ShowError(string.Format("error to deal add head string with [{0}]", tempAddHead)); } } } //other action if (nameValueCollection != null && nameValueCollection.Count > 0) { ShowMes(string.Format("[ParameterizationContent]:{0}", nameValueCollection.MyToFormatString())); } } } /// /// Replace the http request in oSession with your rule (it may call by ModificSessionRequest) /// /// oSession /// FiddlerRequsetChange public static void ReplaceSessionRequest(Session oSession, FiddlerRequestChange nowFiddlerRequsetChange, Action ShowError, Action ShowMes) { string errMes; NameValueCollection nameValueCollection; HttpRequest tempRequestHttpRequest; try { tempRequestHttpRequest = nowFiddlerRequsetChange.HttpRawRequest.UpdateHttpRequest(out errMes, out nameValueCollection); } catch (Exception ex) { ShowError(string.Format("Fail to ReplaceSessionResponse :{0}", ex.Message)); return; } if (errMes != null) { ShowError(errMes); } if (nameValueCollection != null && nameValueCollection.Count > 0) { ShowMes(string.Format("[ParameterizationContent]:{0}", nameValueCollection.MyToFormatString())); } oSession.oRequest.headers = new HTTPRequestHeaders(); oSession.RequestMethod = tempRequestHttpRequest.RequestMethod; try { oSession.fullUrl = tempRequestHttpRequest.RequestUri; } catch (ArgumentException ex) { if (ex.Message == "URI scheme must be http, https, or ftp") { oSession.url = tempRequestHttpRequest.RequestUri; } else { ShowError(ex.Message); } } catch (Exception ex) { ShowError(ex.Message); } ((Fiddler.HTTPHeaders)(oSession.RequestHeaders)).HTTPVersion = tempRequestHttpRequest.RequestVersions; if (tempRequestHttpRequest.RequestHeads != null) { foreach (var tempHead in tempRequestHttpRequest.RequestHeads) { if (tempHead.Key == "Host") { oSession.oRequest.headers.Remove("Host"); } oSession.oRequest.headers.Add(tempHead.Key, tempHead.Value); } } oSession.requestBodyBytes = tempRequestHttpRequest.RequestEntity; } /// /// Modific the http response in oSession with your rule (if IsRawReplace and IsIsDirectRespons it will not call ReplaceSessionResponse) /// /// oSession /// FiddlerResponseChange public static void ModificSessionResponse(Session oSession, FiddlerResponseChange nowFiddlerResponseChange, Action ShowError, Action ShowMes) { if (nowFiddlerResponseChange.ParameterPickList != null && nowFiddlerResponseChange.ParameterPickList.Count>0) { PickSessionParameter(oSession, nowFiddlerResponseChange, ShowError, ShowMes, false); } if (nowFiddlerResponseChange.IsRawReplace) { //if IsIsDirectRespons do nothing if (!nowFiddlerResponseChange.IsIsDirectRespons) { ReplaceSessionResponse(oSession, nowFiddlerResponseChange, ShowError, ShowMes); } } else { string errMes; NameValueCollection nameValueCollection = new NameValueCollection(); //modific body if (nowFiddlerResponseChange.BodyModific != null && nowFiddlerResponseChange.BodyModific.ModificMode != ContentModificMode.NoChange) { if (nowFiddlerResponseChange.BodyModific.ModificMode == ContentModificMode.HexReplace) { try { oSession.ResponseBody = nowFiddlerResponseChange.BodyModific.GetFinalContent(oSession.responseBodyBytes); } catch (Exception ex) { ShowError(string.Format("error in GetFinalContent in HexReplace with [{0}]", ex.Message)); } } else { //you should not change the media data as string string sourceResponseBody = null; try { sourceResponseBody = oSession.GetResponseBodyAsString(); //if the head encode is change ,GetResponseBodyAsString maybe fail if (nowFiddlerResponseChange.BodyModific.ParameterTargetKey.ToString().Contains('\n')) { sourceResponseBody = sourceResponseBody.Replace("\r\n", "\n"); } } catch (Exception ex) { ShowError(string.Format("error in GetResponseBodyAsString [{0}]", ex.Message)); oSession.utilDecodeResponse(); sourceResponseBody = oSession.GetResponseBodyEncoding().GetString(oSession.ResponseBody); } finally { if (nowFiddlerResponseChange.BodyModific.ModificMode == ContentModificMode.ReCode) { try { oSession.ResponseBody = nowFiddlerResponseChange.BodyModific.GetRecodeContent(sourceResponseBody); } catch (Exception ex) { ShowError(string.Format("error in GetRecodeContent in ReCode with [{0}]", ex.Message)); } } else { //oSession.utilSetResponseBody(nowFiddlerResponseChange.BodyModific.GetFinalContent(sourceResponseBody)); string tempResponseBody = nowFiddlerResponseChange.BodyModific.GetFinalContent(sourceResponseBody, nameValueCollection, out errMes); if (errMes != null) { ShowError(string.Format("error in GetFinalContent in BodyModific that [{0}]", errMes)); } if (tempResponseBody != sourceResponseBody) { oSession.utilSetResponseBody(tempResponseBody); } } } //you can use below code to modific the body //oSession.utilDecodeResponse(); //oSession.utilReplaceInResponse("",""); //oSession.utilDeflateResponse(); } } //modific heads if (nowFiddlerResponseChange.HeadDelList != null && nowFiddlerResponseChange.HeadDelList.Count > 0) { foreach (var tempDelHead in nowFiddlerResponseChange.HeadDelList) { oSession.ResponseHeaders.Remove(tempDelHead); } } if (nowFiddlerResponseChange.HeadAddList != null && nowFiddlerResponseChange.HeadAddList.Count > 0) { foreach (var tempAddHead in nowFiddlerResponseChange.HeadAddList) { if (tempAddHead.Contains(": ")) { oSession.ResponseHeaders.Add(tempAddHead.Remove(tempAddHead.IndexOf(": ")), tempAddHead.Substring(tempAddHead.IndexOf(": ") + 2)); } else { ShowError(string.Format("error to deal add head string with [{0}]", tempAddHead)); } } } //other action if (nameValueCollection != null && nameValueCollection.Count > 0) { ShowMes(string.Format("[ParameterizationContent]:{0}", nameValueCollection.MyToFormatString())); } } } /// /// Replace the http response in oSession with your rule /// /// oSession /// FiddlerResponseChange public static void ReplaceSessionResponse(Session oSession, FiddlerResponseChange nowFiddlerResponseChange, Action ShowError, Action ShowMes) { bool isClosePipeWhenReplace = false; byte[] tempResponseBytes; string errMes; NameValueCollection nameValueCollection; HttpResponse tempHttpResponse; try { tempHttpResponse = nowFiddlerResponseChange.HttpRawResponse.UpdateHttpResponse(out errMes, out nameValueCollection); tempResponseBytes = tempHttpResponse.GetRawHttpResponse(); } catch (Exception ex) { ShowError(string.Format("Fail to ReplaceSessionResponse :{0}", ex.Message)); return; } if (errMes != null) { ShowError(errMes); } if (nameValueCollection != null && nameValueCollection.Count > 0) { ShowMes(string.Format("[ParameterizationContent]:{0}", nameValueCollection.MyToFormatString())); } using (MemoryStream ms = new MemoryStream(tempResponseBytes)) { if (isClosePipeWhenReplace) { oSession.PoisonClientPipe(); //关闭客户端与代理的连接(Ensures that, after the response is complete, the client socket is closed and not reused. Does NOT (and must not) close the pipe. ) oSession.PoisonServerPipe(); //关闭代理与服务器的连接 } if (!oSession.LoadResponseFromStream(ms, null)) { ShowError("error to oSession.LoadResponseFromStream"); ShowError("try to modific the response"); //modific the response oSession.oResponse.headers = new HTTPResponseHeaders(); oSession.oResponse.headers.HTTPResponseCode = tempHttpResponse.ResponseCode; oSession.ResponseHeaders.StatusDescription = tempHttpResponse.ResponseStatusDescription; ((Fiddler.HTTPHeaders)(oSession.ResponseHeaders)).HTTPVersion = tempHttpResponse.ResponseVersion; if (tempHttpResponse.ResponseHeads != null && tempHttpResponse.ResponseHeads.Count > 0) { foreach (var tempHead in tempHttpResponse.ResponseHeads) { oSession.oResponse.headers.Add(tempHead.Key, tempHead.Value); } } oSession.responseBodyBytes = tempHttpResponse.ResponseEntity; } } } /// /// Modific the websocket message with your rule /// /// /// /// /// /// public static void ModificWebSocketMessage(Session oSession, WebSocketMessage webSocketMessage, IFiddlerHttpTamper nowFiddlerChange, bool isRequest,Action ShowError, Action ShowMes) { if (nowFiddlerChange.ParameterPickList != null) { PickSessionParameter(oSession, nowFiddlerChange, ShowError, ShowMes, webSocketMessage.IsOutbound, webSocketMessage); } ParameterContentModific payLoadModific = null; if (isRequest) { FiddlerRequestChange nowFiddlerRequsetChange = (FiddlerRequestChange)nowFiddlerChange; payLoadModific = nowFiddlerRequsetChange.BodyModific; } else { FiddlerResponseChange nowFiddlerResponseChange = (FiddlerResponseChange)nowFiddlerChange; payLoadModific = nowFiddlerResponseChange.BodyModific; } //Modific body if (payLoadModific != null && payLoadModific.ModificMode != ContentModificMode.NoChange) { if (payLoadModific.ModificMode == ContentModificMode.HexReplace) { try { webSocketMessage.SetPayload(payLoadModific.GetFinalContent(webSocketMessage.PayloadAsBytes())); } catch (Exception ex) { ShowError(string.Format("error in GetFinalContent in HexReplace with [{0}]", ex.Message)); } } else { if (webSocketMessage.FrameType == WebSocketFrameTypes.Binary) { ShowError("error in GetFinalContent that WebSocketFrameTypes is Binary ,just use mode"); } else if (webSocketMessage.FrameType == WebSocketFrameTypes.Ping || webSocketMessage.FrameType == WebSocketFrameTypes.Pong || webSocketMessage.FrameType == WebSocketFrameTypes.Close) { // do nothing } else { string sourcePayload = webSocketMessage.PayloadAsString(); if (payLoadModific.ModificMode == ContentModificMode.ReCode) { try { webSocketMessage.SetPayload(payLoadModific.GetRecodeContent(sourcePayload)); } catch (Exception ex) { ShowError(string.Format("error in GetRecodeContent in ReCode with [{0}]", ex.Message)); } } else { string errMes; NameValueCollection nameValueCollection = new NameValueCollection(); //webSocketMessage.SetPayload(payLoadModific.GetFinalContent(sourcePayload)); string tempPayload = payLoadModific.GetFinalContent(sourcePayload, nameValueCollection, out errMes); if (errMes != null) { ShowError(string.Format("error in GetFinalContent in PayLoadModific that [{0}]", errMes)); } if (tempPayload != sourcePayload) //非标准协议的实现,或没有实现的压缩会导致PayloadAsString()使数据不可逆 { webSocketMessage.SetPayload(tempPayload); } if (nameValueCollection != null && nameValueCollection.Count > 0) { ShowMes(string.Format("[ParameterizationContent]:{0}", nameValueCollection.MyToFormatString())); } } } } } } public static void PickSessionParameter(Session oSession, IFiddlerHttpTamper nowFiddlerHttpTamper, Action ShowError, Action ShowMes, bool isRequest , WebSocketMessage webSocketMessage=null) { Func PickFunc = (sourceStr, parameterPick) => { try { return ParameterPickTypeEngine.dictionaryParameterPickFunc[parameterPick.PickType].ParameterPickFunc(sourceStr, parameterPick.PickTypeExpression, parameterPick.PickTypeAdditional); } catch (Exception) { return null; } }; bool isWebSocket = webSocketMessage != null; if (nowFiddlerHttpTamper.ParameterPickList != null) { foreach (ParameterPick parameterPick in nowFiddlerHttpTamper.ParameterPickList) { string pickResult = null; string pickSource = null; switch (parameterPick.PickRange) { case ParameterPickRange.Line: if (isRequest) { pickSource = oSession.fullUrl; if (string.IsNullOrEmpty(pickSource)) { pickResult = null; break; } } else { if (oSession.oResponse.headers == null) { pickResult = null; break; } else { //pickSource = string.Format("{0} {1} {}", oSession.oResponse.headers.HTTPVersion, oSession.oResponse.headers.HTTPResponseCode,oSession.oResponse.headers.StatusDescription); pickSource = string.Format("{0} {1}", oSession.oResponse.headers.HTTPVersion, oSession.oResponse.headers.HTTPResponseStatus); } } pickResult = PickFunc(pickSource, parameterPick); break; case ParameterPickRange.Heads: if(isWebSocket) { ShowError("[ParameterizationPick] can not pick parameter in head when the session is websocket"); break; } IEnumerable headerItems = isRequest ? (IEnumerable)oSession.RequestHeaders : (IEnumerable)oSession.ResponseHeaders; foreach (HTTPHeaderItem tempHead in headerItems) { pickResult = PickFunc(tempHead.ToString(), parameterPick); if (pickResult != null) { break; } } break; case ParameterPickRange.Entity: if (isWebSocket) { if(webSocketMessage.PayloadLength==0) { pickResult = null; break; } pickSource = webSocketMessage.PayloadAsString(); pickResult = PickFunc(pickSource, parameterPick); } else { if (((oSession.requestBodyBytes == null || oSession.requestBodyBytes.Length == 0) && isRequest) && ((oSession.ResponseBody == null || oSession.ResponseBody.Length == 0) && isRequest)) { pickResult = null; break; } pickSource = isRequest ? oSession.GetRequestBodyAsString() : oSession.GetResponseBodyAsString(); pickResult = PickFunc(pickSource, parameterPick); } break; default: ShowError("[ParameterizationPick] unkonw pick range"); break; } if (pickResult == null) { ShowMes(string.Format("[ParameterizationPick] can not find the parameter with [{0}]", parameterPick.ParameterName)); } else { ShowMes(string.Format("[ParameterizationPick] pick the parameter [{0} = {1}]", parameterPick.ParameterName, pickResult)); if (nowFiddlerHttpTamper.ActuatorStaticDataController.SetActuatorStaticData(parameterPick.ParameterName, pickResult)) { ShowMes(string.Format("[ParameterizationPick] add the parameter [{0}] to ActuatorStaticDataCollection", parameterPick.ParameterName)); } else { ShowError(string.Format("[ParameterizationPick] fail to add the parameter [{0}] to ActuatorStaticDataCollection", parameterPick.ParameterName)); } } } } else { ShowError("[ParameterizationPick] not find ParameterPick to pick"); } } public static string GetSessionRawData(Session oSession, bool isHaveResponse) { if (oSession == null) { return null; } StringBuilder sbRawData = new StringBuilder(); MemoryStream ms = new MemoryStream(); //tempSession.WriteToStream(SmartAssembly, false); oSession.WriteRequestToStream(true, true, ms); ms.Position = 0; StreamReader sr = new StreamReader(ms, Encoding.UTF8); sbRawData.Append(sr.ReadToEnd()); sr.Close(); ms.Close(); if (oSession.requestBodyBytes != null && oSession.requestBodyBytes.Length > 0) { sbRawData.AppendLine(oSession.GetRequestBodyAsString()); sbRawData.Append("\r\n"); } if (isHaveResponse && oSession.bHasResponse) { sbRawData.AppendLine(oSession.ResponseHeaders.ToString()); if (oSession.responseBodyBytes != null && oSession.responseBodyBytes.Length > 0) { sbRawData.AppendLine(oSession.GetResponseBodyAsString()); } } return sbRawData.ToString(); } public static bool GetSessionData(Session oSession, FreeHttpControl.FreeHttpWindow.GetSessionEventArgs sessionEventArgs) { if (sessionEventArgs == null || oSession==null) { return false; } sessionEventArgs.Uri = oSession.fullUrl; if (oSession.oRequest!=null) { sessionEventArgs.RequestHeads = new List>(oSession.oRequest.headers.Count()); foreach (var head in oSession.oRequest.headers) { sessionEventArgs.RequestHeads.Add(new KeyValuePair(head.Name, head.Value)); } if(sessionEventArgs.IsGetEntity) { sessionEventArgs.RequestEntity = oSession.GetRequestBodyAsString(); } } if (oSession.bHasResponse && oSession.oResponse != null) { sessionEventArgs.ResponseHeads = new List>(oSession.oResponse.headers.Count()); foreach (var head in oSession.oResponse.headers) { sessionEventArgs.ResponseHeads.Add(new KeyValuePair(head.Name, head.Value)); } if (sessionEventArgs.IsGetEntity) { sessionEventArgs.ResponseEntity = oSession.GetResponseBodyAsString(); } } return true; } } } ================================================ FILE: FreeHttp.csproj ================================================  Debug AnyCPU {432A476E-3D49-4994-A75C-346EFDAD1E9A} Library Properties FreeHttp FreeHttp v4.5 512 true full false bin\Debug\ DEBUG;TRACE;NET4_5UP prompt 4 false AnyCPU pdbonly true bin\Release\ TRACE prompt 4 false False bin\Debug\Fiddler4.5\Fiddler.exe Form ChangeEncodeForm.cs Form EditKeyVaule.cs Form EditCookieForm.cs Form EditParameterPickWindow.cs Form EditSheetForm.cs Form GetRemoteRuleWindow.cs Component Form SortRule.cs Form RuleInfoWindow.cs UserControl AddParameterPickBox.cs Form UserControl EditListView.cs UserControl UserControl FreeHttpWindow.cs Form HttpFilterWindow.cs Form Component Component Component UserControl MyEnableSwitch.cs Component UserControl RawRequestEdit.cs UserControl RawResponseEdit.cs Form RemoveHead.cs Form SaveShareRule.cs Form SettingWindow.cs Form SetVaule.cs Form ShowSheetForm.cs Form ShowTextForm.cs Form StaticDataAddWindow.cs Form StaticDataManageWindow.cs UserControl TextBoxEditer.cs Component Form UserFeedbackWindow.cs True True Resources.resx True True MyResource.resx ChangeEncodeForm.cs Designer EditKeyVaule.cs Designer EditCookieForm.cs Designer EditParameterPickWindow.cs Designer EditSheetForm.cs GetRemoteRuleWindow.cs SortRule.cs RuleInfoWindow.cs AddParameterPickBox.cs Designer EditListView.cs FreeHttpWindow.cs HttpFilterWindow.cs MyBaseInfoWindow.cs MyListView.cs MyEnableSwitch.cs RawRequestEdit.cs RawResponseEdit.cs RemoveHead.cs SaveShareRule.cs SettingWindow.cs SetVaule.cs ShowSheetForm.cs ShowTextForm.cs StaticDataAddWindow.cs StaticDataManageWindow.cs TextBoxEditer.cs Designer UserFeedbackWindow.cs ResXFileCodeGenerator Resources.Designer.cs Designer ResXFileCodeGenerator Designer MyResource.Designer.cs copy "$(TargetPath)" "$(SYSTEMDRIVE)$(HOMEPATH)\AppData\Local\Programs\Fiddler\Scripts\$(TargetFilename)" ================================================ FILE: FreeHttp.sln ================================================  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.28803.452 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeHttp", "FreeHttp.csproj", "{432A476E-3D49-4994-A75C-346EFDAD1E9A}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreeHttpWebService", "..\FreeHttpWebService\FreeHttpWebService.csproj", "{1BEB4588-FC73-4221-89F3-59913E39BA01}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeHttpTests", "..\FreeHttpTests\FreeHttpTests.csproj", "{4E9B0249-D28D-4CD1-93D6-5EA4AB8D5CF9}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeHttpWeb", "..\FreeHttpWeb\FreeHttpWeb.csproj", "{6B40B9FE-A972-47A9-ACDA-01AE89C8EFC9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {432A476E-3D49-4994-A75C-346EFDAD1E9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {432A476E-3D49-4994-A75C-346EFDAD1E9A}.Debug|Any CPU.Build.0 = Debug|Any CPU {432A476E-3D49-4994-A75C-346EFDAD1E9A}.Release|Any CPU.ActiveCfg = Release|Any CPU {432A476E-3D49-4994-A75C-346EFDAD1E9A}.Release|Any CPU.Build.0 = Release|Any CPU {1BEB4588-FC73-4221-89F3-59913E39BA01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1BEB4588-FC73-4221-89F3-59913E39BA01}.Debug|Any CPU.Build.0 = Debug|Any CPU {1BEB4588-FC73-4221-89F3-59913E39BA01}.Release|Any CPU.ActiveCfg = Release|Any CPU {1BEB4588-FC73-4221-89F3-59913E39BA01}.Release|Any CPU.Build.0 = Release|Any CPU {4E9B0249-D28D-4CD1-93D6-5EA4AB8D5CF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4E9B0249-D28D-4CD1-93D6-5EA4AB8D5CF9}.Debug|Any CPU.Build.0 = Debug|Any CPU {4E9B0249-D28D-4CD1-93D6-5EA4AB8D5CF9}.Release|Any CPU.ActiveCfg = Release|Any CPU {4E9B0249-D28D-4CD1-93D6-5EA4AB8D5CF9}.Release|Any CPU.Build.0 = Release|Any CPU {6B40B9FE-A972-47A9-ACDA-01AE89C8EFC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6B40B9FE-A972-47A9-ACDA-01AE89C8EFC9}.Debug|Any CPU.Build.0 = Debug|Any CPU {6B40B9FE-A972-47A9-ACDA-01AE89C8EFC9}.Release|Any CPU.ActiveCfg = Release|Any CPU {6B40B9FE-A972-47A9-ACDA-01AE89C8EFC9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {5D63C238-74AD-4459-AD37-9BD7804E7E56} EndGlobalSection EndGlobal ================================================ FILE: FreeHttpControl/ChangeEncodeForm.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class ChangeEncodeForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ChangeEncodeForm)); this.bt_ok = new System.Windows.Forms.Button(); this.tb_contentType = new System.Windows.Forms.TextBox(); this.lb_info_3 = new System.Windows.Forms.Label(); this.lb_info_1 = new System.Windows.Forms.Label(); this.cb_body = new System.Windows.Forms.ComboBox(); this.lb_info_2 = new System.Windows.Forms.Label(); this.tb_recode = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // bt_ok // this.bt_ok.Location = new System.Drawing.Point(234, 99); this.bt_ok.Name = "bt_ok"; this.bt_ok.Size = new System.Drawing.Size(75, 23); this.bt_ok.TabIndex = 10; this.bt_ok.Text = "confirm"; this.bt_ok.UseVisualStyleBackColor = true; this.bt_ok.Click += new System.EventHandler(this.bt_ok_Click); // // tb_contentType // this.tb_contentType.Location = new System.Drawing.Point(99, 67); this.tb_contentType.Name = "tb_contentType"; this.tb_contentType.Size = new System.Drawing.Size(210, 21); this.tb_contentType.TabIndex = 6; // // lb_info_3 // this.lb_info_3.AutoSize = true; this.lb_info_3.Location = new System.Drawing.Point(13, 70); this.lb_info_3.Name = "lb_info_3"; this.lb_info_3.Size = new System.Drawing.Size(83, 12); this.lb_info_3.TabIndex = 8; this.lb_info_3.Text = "Content-Type:"; // // lb_info_1 // this.lb_info_1.AutoSize = true; this.lb_info_1.Location = new System.Drawing.Point(15, 11); this.lb_info_1.Name = "lb_info_1"; this.lb_info_1.Size = new System.Drawing.Size(35, 12); this.lb_info_1.TabIndex = 11; this.lb_info_1.Text = "Body:"; // // cb_body // this.cb_body.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cb_body.FormattingEnabled = true; this.cb_body.Items.AddRange(new object[] { "change request encode", "change response encode"}); this.cb_body.Location = new System.Drawing.Point(99, 7); this.cb_body.Name = "cb_body"; this.cb_body.Size = new System.Drawing.Size(210, 20); this.cb_body.TabIndex = 12; // // lb_info_2 // this.lb_info_2.AutoSize = true; this.lb_info_2.Location = new System.Drawing.Point(15, 41); this.lb_info_2.Name = "lb_info_2"; this.lb_info_2.Size = new System.Drawing.Size(47, 12); this.lb_info_2.TabIndex = 13; this.lb_info_2.Text = "Encode:"; // // tb_recode // this.tb_recode.AutoCompleteCustomSource.AddRange(new string[] { "utf-8", "gb2312", "utf-16", "utf-32", "x-cp20936", "gbk", "euc-jp", "EUC-CN", "GB18030", "unicodeFFFE", "big5", "IBM037", "IBM437", "IBM500", "windows-1250", "Windows-1252", "windows-1253", "Johab", "x-mac-chinesetrad", "utf-32BE"}); this.tb_recode.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; this.tb_recode.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource; this.tb_recode.Location = new System.Drawing.Point(99, 36); this.tb_recode.Name = "tb_recode"; this.tb_recode.Size = new System.Drawing.Size(210, 21); this.tb_recode.TabIndex = 14; this.tb_recode.Text = "utf-8"; this.tb_recode.TextChanged += new System.EventHandler(this.Tb_recode_TextChanged); // // ChangeEncodeForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(315, 128); this.Controls.Add(this.tb_recode); this.Controls.Add(this.lb_info_2); this.Controls.Add(this.cb_body); this.Controls.Add(this.lb_info_1); this.Controls.Add(this.bt_ok); this.Controls.Add(this.lb_info_3); this.Controls.Add(this.tb_contentType); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "ChangeEncodeForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Change Encode"; this.Load += new System.EventHandler(this.ChangeEncodeForm_Load); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Button bt_ok; private System.Windows.Forms.TextBox tb_contentType; private System.Windows.Forms.Label lb_info_3; private System.Windows.Forms.Label lb_info_1; private System.Windows.Forms.ComboBox cb_body; private System.Windows.Forms.Label lb_info_2; private System.Windows.Forms.TextBox tb_recode; } } ================================================ FILE: FreeHttpControl/ChangeEncodeForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class ChangeEncodeForm : Form { public class ChangeEncodeInfo { public String ContentType_Request { get; set; } public String ContentType_Response { get; set; } public String NowEncode { get; set; } public FreeHttpWindow.RuleEditMode EditMode { get; set; } = FreeHttpWindow.RuleEditMode.NewRuleMode; } ChangeEncodeInfo changeEncodeInfo; public ChangeEncodeForm(ChangeEncodeInfo info) { InitializeComponent(); if(info!=null) { changeEncodeInfo = info; } else { throw new Exception("your ChangeEncodeInfo is null"); } } private void ChangeEncodeForm_Load(object sender, EventArgs e) { if (changeEncodeInfo.EditMode == FreeHttpWindow.RuleEditMode.EditRequsetRule) { cb_body.Enabled = false; cb_body.SelectedIndex = 0; } else if (changeEncodeInfo.EditMode == FreeHttpWindow.RuleEditMode.EditResponseRule) { cb_body.Enabled = false; cb_body.SelectedIndex = 1; } //cb_body.SelectedIndex = changeEncodeInfo.EditMode ==FreeHttpWindow.RuleEditMode.EditResponseRule ? 1:0 ; UpdataContentType(); tb_contentType.Enabled = false; tb_recode.Focus(); } private void Tb_recode_TextChanged(object sender, EventArgs e) { UpdataContentType(); } private void UpdataContentType() { string nowContentType = cb_body.SelectedIndex == 0 ? changeEncodeInfo.ContentType_Request : changeEncodeInfo.ContentType_Response; if (!string.IsNullOrEmpty(nowContentType)) { nowContentType = nowContentType.Trim(); if (nowContentType.Contains("charset")) { int startIndex = nowContentType.IndexOf("charset"); int endIndex = nowContentType.IndexOf(';', startIndex); if (endIndex < 0) { tb_contentType.Text = string.Format("{0}charset={1}", nowContentType.Remove(startIndex), tb_recode.Text); } else { tb_contentType.Text = string.Format("{0};charset={1}", nowContentType.Remove(startIndex, endIndex + 1 - startIndex), tb_recode.Text); } } else { tb_contentType.Text = string.Format("{0};charset={1}", nowContentType, tb_recode.Text); } } else { tb_contentType.Text = string.Format("charset={0}", tb_recode.Text); } } private void bt_ok_Click(object sender, EventArgs e) { try { Encoding.GetEncoding(tb_recode.Text); changeEncodeInfo.NowEncode = tb_recode.Text; if(cb_body.SelectedIndex==0) { changeEncodeInfo.ContentType_Request = tb_contentType.Text; changeEncodeInfo.ContentType_Response = null; } else { changeEncodeInfo.ContentType_Response = tb_contentType.Text; changeEncodeInfo.ContentType_Request = null; } } catch(Exception ex) { MessageBox.Show(string.Format("your recode is illegal that {0}", ex.Message),"Stop",MessageBoxButtons.OK,MessageBoxIcon.Stop); return; } this.Close(); } } } ================================================ FILE: FreeHttpControl/ChangeEncodeForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAQEAAAAAAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXCwAAIBAAACAQ AAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQ AAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQ AAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAIBAAACAQ AAAgEAAAIBAAACAQAAAgEAAAIBAAACAQAAAgEAAAHxAAAAIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABNJgAAwmICWs1nAuDNaALrzWcC681oAuvNZwLrzWgC681nAuvNaALrzWcC681oAuvNZwLrzWgC681n AuvNaALrzWcC681oAuvNZwLrzWgC681nAuvNaALrzWcC681oAuvNZwLrzWgC681nAuvNaALrzWcC681o AuvNZwLrzWgC681nAuvNaALrzWcC681oAuvNZwLrzWgC681nAuvNaALrzWcC681oAuvNZwLrzWgC681n AuvNaALrzWcC681oAuvNZwLrzWgC681nAuvNaALrzWcC681oAuvNZwLrzWgC68xoAt5wOQFHAgEAAAAA AAAAAAAAAAAAAAAAAAAAAAAApFMCJ81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgD/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oA//NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAP/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWcC/x8QABIAAAAAAAAAAAAAAAAAAAAAAAAAAKNTAl/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAP/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgD/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oA//MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81nAv8fEABHAAAAAAAAAAAAAAAAAAAAAAAAAACkUwJfzWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NZwP/HxAARwAAAAAAAAAAAAAAAAAA AAAAAAAAo1MCX81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWcC/x8Q AEcAAAAAAAAAAAAAAAAAAAAAAAAAAKRTAl/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgD/81o A//NaAL/zWgD/81oA//NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o A//NaAP/zWgC/81oA//NaAP/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAP/zWgD/81oAv/NaAP/zWgD/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgD/81nA/8fEABHAAAAAAAAAAAAAAAAAAAAAAAAAACjUwJfzWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NZwL/HxAARwAAAAAAAAAAAAAAAAAAAAAAAAAApFMCX81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWcD/x8QAEcAAAAAAAAAAAAA AAAAAAAAAAAAAKNTAl/NaAL/zGcC/81oAv/MZwL/zWgD/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAP/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oA//MZwL/zWgC/81nAv/NZwL/zGcC/81o Av/MZwL/zWgD/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAP/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oA//MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgD/8xnAv/NaAL/zGcC/81n Av8fEABHAAAAAAAAAAAAAAAAAAAAAAAAAACkUwJfzWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAP/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/y14C/ygU AHwSCQAKSSUBIsZkAvfNaAP/zWgD/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oA//NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NZwP/HxAARwAAAAAAAAAAAAAAAAAAAAAAAAAAo1MCX81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/4k+AeAAAAAAAAAAAAAAAACJRQExzWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWcC/x8QAEcAAAAAAAAAAAAAAAAAAAAAAAAAAKRT Al/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zmUC/79hAv/HZQL/zWgC/81oA/+AQAHNAAAAAAAAAAAAAAAARCQAAM1nA/vNaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zGcC/79hAv/HZAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81nA/8fEABHAAAAAAAA AAAAAAAAAAAAAAAAAACjUwJfzWgD/8xnAv/NaAL/zGcC/81oA//MZwL/zWgC/8xnAv/NaAP/zGcC/81o Av/MZwL/zWgD/8xnAv/NaAL/xmQD/1IcAK0AAAAANBoAAMRjAtvNaAP/xmUC/xUKAAAAAAAAAAAAAAcD AACsVwJ1zGcC/81oA//MZwL/zWgC/8xnAv/NaAP/zGcC/81oAv/MZwL/zGcC/1suAMoAAAAAIxEAAKZU AsLMZwL/zWgC/8xnAv/NaAP/zGcC/81oAv/MZwL/zWgD/8xnAv/NaAL/zGcC/81oA//MZwL/zWgC/8xn Av/NZwP/HxAARwAAAAAAAAAAAAAAAAAAAAAAAAAApFMCX81oA//NaAP/zWgD/81oAv/NaAP/zWgC/81o A//NaAP/zWgD/81oAv/NaAP/zWgD/81oA//NaAP/w2MC/zYbAJEAAAAAAAAAAAAAAABtNwEAzWgD/81o Av9UKgFXAAAAAAAAAAAAAAAAcDgBBc1oA//NaAP/zWgD/81oA//NaAL/zWgD/81oA//NaAP/zWgC/7Zc Av8AAAAAAAAAAAAAAAAOBwAAo1MCrc1oA//NaAP/zWgD/81oA//NaAP/zWgC/81oA//NaAP/zWgD/81o Av/NaAP/zWgC/81oA//NaAP/zWcD/x8QAEcAAAAAAAAAAAAAAAAAAAAAAAAAAKNTAl/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAP/w2MC/zgcAHkAAAAAAAAAAAAA AAAAAAAAmU0BAM1oAv/MZwL/rlgC7gIBAAAAAAAAAAAAABIJAADMaALkzWgD/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv+7XwL/CwUAAAAAAAAAAAAAAAAAABAIAACiUgKTzGcC/81oA//MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81nAv8fEABHAAAAAAAAAAAAAAAAAAAAAAAA AACkUwJfzWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/wmMC/zgd AG0AAAAAAAAAAAAAAAAAAAAAXC4BAMpmApvNaAP/zWgC/81nAv8qFQAJAAAAAAAAAAABAAAAnE8BK81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/5hNAn0JBQAAAAAAAAAAAAAAAAAAEAgAAKNT AYbNaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NZwP/HxAARwAA AAAAAAAAAAAAAAAAAAAAAAAAo1MCX81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NZwL/xmUC/zQbAGoAAAAAAAAAAAAAAAAAAAAAWS0BAMtnApLMZwL/zWgC/8xnAv/NaAL/h0QBtQAA AAAAAAAAAAAAAFUqAADNaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwP/mE0CfAgE AAAAAAAAAAAAAAAAAAAOBwAApFMBhMxnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWcC/x8QAEcAAAAAAAAAAAAAAAAAAAAAAAAAAKRTAl/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NZwL/zFYC/zwhAGUAAAAAAAAAAAAAAAAKAAAAbywBAM1oAp/NaAP/zWgC/81o A//NaAL/zWgD/75gAv8PBwABAAAAAAAAAAAAAAAAyWoCnM1oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA/+YTAKBCAQAAAAAAAAAAAAAAAAAAA8IAACmUgF9zWgC/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81nA/8fEABHAAAAAAAAAAAAAAAAAAAAAAAAAACjUwJfzWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/pFIC/w8HAE8AAAAAAAAAAAAAAAAIBAAAlz0BAM1o ArHMZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/YTAAPAAAAAAAAAAAAAAAAG03AQDMZwL+zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zWcC/5hNAY8JBQAAAAAAAAAAAAAAAAAAEAgAAKFO AWnMZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NZwL/HxAARwAAAAAAAAAAAAAAAAAA AAAAAAAApFMCX81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/olIC/w8IAEAAAAAAAAAAAAAA AAALBQAAmksBAMxnAr/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/61SAfMJAAAAAAAAAAAA AAArFQAAyWYC4s1oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAL/l0wCqiEF AAAAAAAAAAAAAAAAAAASCQAAmj0BVs1nA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWcD/x8Q AEcAAAAAAAAAAAAAAAAAAAAAAAAAAKNTAl/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/o1IC/xAI ADcAAAAAAAAAAAAAAAAKBQAAmE0BAM1nAsTMZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/OZQP/LRUAEQAAAAAAAAAAAAAAAJhNAj7NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/GXwKyKxgAAAAAAAAAAAAAAAAAAAIBAABoNQFHzGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81nAv8fEABHAAAAAAAAAAAAAAAAAAAAAAAAAACkUwJfzWgD/81oAv/NaAP/zWgC/81o A//NaAL/pFMC/g8HACkAAAAAAAAAAAAAAAAIBAAAmU4BAM1nAtHNaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAP/zWgD/3E5AY8AAAAAAAAAAAAAAABTKgAAzWgD/M1oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgD/81oA//NaAL/zWgD/8FhAb0pFgAAAAAAAAAAAAAAAAAAAAAAAHI6 ATzNaAL/zWgC/81oA//NaAL/zWgD/81oA//NZwP/HxAARwAAAAAAAAAAAAAAAAAAAAAAAAAAo1MCX81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/z8gAJgAAAAAAAAAAAAAAAAFAgAAl0wBAs1nAunMZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv+8XwL/EgkAAAAAAAAAAAAACwUAALhd AqXMZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/v2AB0yMT AAAAAAAAAAAAAAAAAAAPBwAAxmQCwsxnAv/NaAL/zGcC/81oAv/MZwL/zWcC/x8QAEcAAAAAAAAAAAAA AAAAAAAAAAAAAKRTAl/NaAP/zWgC/81oA//NaAL/zWgD/81oAv9XLABSAAAAAAAAAAAAAAAABAEAAIRA ACDNaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWcC/0Uj AEIAAAAAAAAAAAAAAAB/QAEKzWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/4tGAf4EAgAWAAAAAAAAAAAAAAAAFQoAAMdkAoTNaAL/zWgD/81oAv/NaAP/zWgC/81n A/8fEABHAAAAAAAAAAAAAAAAAAAAAAAAAACjUwJfzWgC/8xnAv/NaAL/zGcC/81oA//MZwL/s1oC8E4X AAAAAAAAAAAAAAAAAAABAAAAaCQBCslmAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAP/zGcC/81o Av/MZwL/zWgC/8xnAv+lUwHRAAAAAAAAAAAAAAAAQREAAMxoAuzNaAL/zGcC/81oAv/MZwL/zWgD/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/4xHAf4BAAAGAAAAAAAAAAAAAAAAFwsAALJYAQDNaAL3zGcC/81o A//MZwL/zWgC/8xnAv/NZwL/HxAARwAAAAAAAAAAAAAAAAAAAAAAAAAApFMCX81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//IaALnRiQAAAAAAAAAAAAAAAAAAAAAAABLJgAYx2UC/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/x2UC/yAQAAAAAAAAAAAAAAIBAACmVgJYzWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zGgC/4lFAv0FAgAQAAAAAAAAAAAAAAAAGAwAAK5Y AQPNZwLvzWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWcD/x8QAEcAAAAAAAAAAAAAAAAAAAAAAAAAAKNT Al/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/8VkAuZGJAACAAAAAAAAAAAAAAAAAAAAAEwm ABvHZQL9zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81nAv90OgGVAAAAAAAA AAAAAAAAXC8AAM1oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWcD/4hFAvkHAwARAAAAAAAA AAAAAAAAGQwAAKxXAQfNaALwzGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81nAv8fEABHAAAAAAAA AAAAAAAAAAAAAAAAAACkUwJfzWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/xmQC7EYj AAQAAAAAAAAAAAAAAAAAAAAASyYBFMlmA/zNaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/vF8C9QYAAAAAAAAAAAAAABEIAADKZAKwzWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWcC/4lF AfYHAwAMAAAAAAAAAAAAAAAAFwwAAKxYAgnNaAL1zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NZwP/HxAARwAAAAAAAAAAAAAAAAAAAAAAAAAAo1MCX81oA//MZwL/zWgC/8xnAv/NaAP/zGcC/81o Av/MZwL/zWgD/8xnAv/JZgLzRCIABQAAAAAAAAAAAAAAAAAAAABIJAEKzWcC+81oAv/MZwL/zWgD/8xn Av/NaAL/zGcC/81oA//MZwL/zWgC/8xnAv9OGgAMAAAAAAAAAAAAAAAAfD4BHsxnAv/NaAL/zGcC/81o A//MZwL/zWgC/4xHAfcFAgAFAAAAAAAAAAAAAAAAFAoAAK9YAgnNaAL5zGcC/81oA//MZwL/zWgC/8xn Av/NaAP/zGcC/81oAv/MZwL/zWcD/x8QAEcAAAAAAAAAAAAAAAAAAAAAAAAAAKRTAl/NaAP/zWgD/81o A//NaAL/zWgD/81oAv/NaAP/zWgD/81oA//NaAL/zWgD/8xoA/pEIgEAAAAAAAAAAAAAAAAAAAAAAEck AALKZgL7zWgC/81oA//NaAL/zWgD/81oA//NaAP/zWgC/81oA//NaAP/kkoB9wAAAAAAAAAAAAAAADkb AADNZwP/zWgD/81oAv/NaAP/zWcC/4pFAPgBAAABAAAAAAAAAAAAAAAAFQoAALNbAgDNaAP9zWgD/81o Av/NaAP/zWgD/81oA//NaAL/zWgD/81oAv/NaAP/zWgD/81nA/8fEABHAAAAAAAAAAAAAAAAAAAAAAAA AACjUwJfzWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/yGYC/Eck AQkAAAAAAAAAAAAAAAAAAAAASSUABMdlAvPNaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/8lm A/8dDQAIAAAAAAAAAAABAAAApVQCU81oAv/MZwL/zWcC/4hEAOsEAgABAAAAAAAAAAAAAAAAGAwAAK9Y Ag/NaAP+zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NZwL/HxAARwAA AAAAAAAAAAAAAAAAAAAAAAAApFMCX81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//HZQL8SCQAEgAAAAAAAAAAAAAAAAAAAAB3PAEPzWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/YjEBYwAAAAAAAAAAAAAAAGQyAQPNaAP+zWgC/7ldAv8GAwAFAAAAAAAA AAAAAAAAJwwAAK1XAh7NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWcD/x8QAEcAAAAAAAAAAAAAAAAAAAAAAAAAAKNTAl/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/8ZkAv1HJAAZAAAAAAAAAAAAAAAAlEoBAM1o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/7VbAv8MBgAAAAAAAAAAAAApBgAAyWQC1cxn Av+4XAL/BAIAAAAAAAAAAAAASSgAAMxeAifNaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81nAv8fEABHAAAAAAAAAAAAAAAAAAAAAAAAAACkUwJfzWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAP/zWgD/81oAv/NaAP/yGUC/38w ARkEAgAAXC4AAMdlAl3NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgD/81oA//NaAL/NhsAKgAA AAAAAAAAAAAAAI1IAQ/NZwL/zWcC/4ZEATscDgAAWy4AAMljAiXNaAL/zWgD/81oA//NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NZwP/HxAARwAAAAAAAAAAAAAAAAAA AAAAAAAAo1MCX81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o A//MZwL/zWgC/8xnAv/NaAL/zWgC4c1oAvXMZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAP/zGcC/5NOAbUAAAAAAAAAAAAAAABGIwAAzWcC9c1oAv/MZwL/zWcC7s1nAuvNaAL/zGcC/81o Av/MZwL/zWgD/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWcC/x8Q AEcAAAAAAAAAAAAAAAAAAAAAAAAAAKRTAl/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/AYQL/GAwAAAAAAAAAAAAARCIAAM1oAtrNaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81nA/8fEABHAAAAAAAAAAAAAAAAAAAAAAAAAACjUwJfzWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWcC/5tPAo88HgAAOx0AAMBi AgvMZwL+zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NZwL/HxAARwAAAAAAAAAAAAAAAAAAAAAAAAAApFMCX81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAP/zWgD/81oAv/NaAP/zWgD/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgD/81oA//NaAL/zWgD/81oA//NaAP/zWgC/81o A//NaAL/zWgC5c1nAsLNaAP+zWgC/81oA//NaAL/zWgD/81oA//NaAP/zWgC/81oA//NaAP/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAP/zWcD/x8QAEcAAAAAAAAAAAAA AAAAAAAAAAAAAKNTAl/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81n Av8fEABHAAAAAAAAAAAAAAAAAAAAAAAAAACkUwJfzWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NZwP/HxAARwAAAAAAAAAAAAAAAAAAAAAAAAAAo1MCX81oAv/MZwL/zWgC/8xn Av/NaAP/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oA//MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgD/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAP/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oA//MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgD/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAP/zGcC/81oAv/MZwL/zWcC/x8QAEcAAAAAAAAAAAAAAAAAAAAAAAAAAKRT Al/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oA//NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAP/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgD/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81nA/8fEABHAAAAAAAA AAAAAAAAAAAAAAAAAABTKgFNaTQBz2k0Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0 Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0 Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0 Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0Ac9pNAHPaTQBz2k0 Ac9pNAHPEAgAOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAXjABAHY8AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8 AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8 AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8 AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8AQB2PAEAdjwBAHY8 AQB2PAEAdjsBABIJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKRTAl/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81nA/8fEABHAAAAAAAAAAAAAAAAAAAAAAAAAACjUwJfzWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NZwL/HxAARwAAAAAAAAAAAAAAAAAA AAAAAAAApFMCX81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/ymYC/8hlAv/IZQL/ymYC/81o Av/NaAL/zWgD/81oAv/NaAL/yWYC/8hlAv/IZQL/ymYC/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o A//NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oAv/JZgL/yGUC/8hlAv/IZQL/yGUC/8hl Av/IZQL/yGUC/8hlAv/IZQL/ymYC/81oAv/NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWcD/x8Q AEcAAAAAAAAAAAAAAAAAAAAAAAAAAKNTAl/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/kUkB/x4P AEgAAAAAAAAAABgMAACFQwJ1zGcC/s1oAv/MZwL/g0EB+BcLABMAAAAAAAAAAB8PAACUSwK5zWgC/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgD/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv92PAHkEQgABAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoNAACUSAFgzWcC/81oAv/MZwL/zWgC/8xn Av/NaAL/zGcC/81nAv8fEABHAAAAAAAAAAAAAAAAAAAAAAAAAACkUwJfzWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWcC/yEQADsAAAAAAAAAAAAAAAAAAAAAAgEAAMBhAqrNaAP/u18C/wIBAAcAAAAAAAAAAAAA AAAAAAAAJhMAAM1oAv3NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A/+qVgL/AQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgMAAL1f Am/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NZwP/HxAARwAAAAAAAAAAAAAAAAAAAAAAAAAAo1MCX81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81nAv8rFQALAAAAAAAAAAAAAAAAAAAAAAoFAADBYgJXzWgC/71g Av8JBAAAAAAAAAAAAAAAAAAAAAAAAC4XAADNZwLBzGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/sFYB/wgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAQCAADLZgIQzWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWcC/x8QAEcAAAAAAAAAAAAA AAAAAAAAAAAAAKRTAl/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/o1ICtz0eAAAWCwAAFgsAABYL AACZTAEAzWgC481oA//NaAL/lksBXRYLAAAWCwAAFgsAAD8PAAClVAIHzWgD/81oA//NaAP/zWgC/81o A//NaAP/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/85kAv9rMgEhFgsAABYLAAAWCwAAFgsAABYL AAAWCwAAFgsAABYLAAAWCwAAFgsAAB0OAAB8PgEAzWgC181oA//NaAL/zWgD/81oAv/NaAP/zWgD/81n A/8fEABHAAAAAAAAAAAAAAAAAAAAAAAAAACjUwJfzWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xn Av/NaALuzWgCo81oAqHNZwKlzWgC/cxnAv/NaAL/zGcC/81oAv/NZwLWzWgCoc1oAqHNZwKvzGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/81o Ar7NaAKhzWgCoc1oAqHNaAKhzWgCoc1oAqHNaAKhzWgCoc1oAqHNaAKlzWgC9cxnAv/NaAL/zGcC/81o Av/MZwL/zWgC/8xnAv/NZwL/HxAARwAAAAAAAAAAAAAAAAAAAAAAAAAApFMCX81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81o Av/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWgD/81oAv/NaAP/zWgC/81o A//NaAL/zWgD/81oAv/NaAP/zWgC/81oA//NaAL/zWcD/x8QAEcAAAAAAAAAAAAAAAAAAAAAAAAAAI9I ATTNZwL/zGcC/81oAv/MZwL/zWgD/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAP/zGcC/81o Av/MZwL/zWgC/8xnAv/NaAL/zGcC/81oA//MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgD/8xn Av/NaAL/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAP/zGcC/81oAv/MZwL/zWgC/8xnAv/NaAL/zGcC/81o A//MZwL/zWgC/8xnAv/NaAL/zGcC/81oAv/MZwL/zWgD/8xnAv/NaAL/zGcC/7JaAv8LBgAbAAAAAAAA AAAAAAAAAAAAAAAAAAAOBwAAdzwAcqRTAv+kUwL/pFMC/6RTAv+kUwL/pFMC/6RTAv+kUwL/pFMC/6RT Av+kUwL/pFMC/6RTAv+kUwL/pFMC/6RTAv+kUwL/pFMC/6RTAv+kUwL/pFMC/6RTAv+kUwL/pFMC/6RT Av+kUwL/pFMC/6RTAv+kUwL/pFMC/6RTAv+kUwL/pFMC/6RTAv+kUwL/pFMC/6RTAv+kUwL/pFMC/6RT Av+kUwL/pFMC/6RTAv+kUwL/pFMC/6RTAv+kUwL/pFMC/6RTAv+kUwL/pFMC/6RTAv+kUwL/pFMC/45I Af8uFwBcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA////////////////////////////////8AAAAAAAAAfgAAAAAAAAA+AAAAAAAAAD4AAAAAAA AAPgAAAAAAAAA+AAAAAAAAAD4AAAAAAAAAPgAAAAAAAAA+AAAAAAAAAD4AAAAAAAAAPgAAA4AAAAA+AA ADwAAAAD4AAGPAAwAAPgAA8cAHgAA+AAHx4AfAAD4AA+DgA+AAPgAHwPAB8AA+AA+AcAD4AD4AHwB4AH wAPgA+AHgAPgA+AHwAOAAfAD4A+AA8AA+APgHgADwAB8A+AeAAHAADwD4B8AAeAAfAPgD4AB4ADwA+AD wADwAeAD4AHgAPADwAPgAPAAcAeAA+AA+AB4D4AD4AA8ADgeAAPgAB4AODwAA+AADwA8eAAD4AAGABww AAPgAAAAHgAAA+AAAAAeAAAD4AAAAAwAAAPgAAAAAAAAA+AAAAAAAAAD4AAAAAAAAAPgAAAAAAAAA+AA AAAAAAAD4AAAAAAAAAP//////////////////////////////////////////+AAAAAAAAAD4AAAAAAA AAPgAAAAAAAAA+AHA4AAP/AD4A+HwAB/+APgD4/AAP/4A+APh4AAf/gD4AAAAAAAAAPgAAAAAAAAA+AA AAAAAAAD8AAAAAAAAAf///////////////////////////////8= ================================================ FILE: FreeHttpControl/ControlHelper/LoadBitmap.cs ================================================ using System; using System.Collections; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl.ControlHelper { class LoadBitmap { //private int count = -1; //private ArrayList images = new ArrayList(); //public Bitmap[] bitmap = new Bitmap[8]; private int _value = 1; private Color _circleColor = Color.Red; private float _circleSize = 0.8f; private int Width; private int Height; public LoadBitmap(Size size) { Width = size.Width; Height = size.Height; } internal void SetSize(int size) { SetSize(new Size(size, size)); } public void SetSize(Size size) { Width = size.Width; Height = size.Height; } public Bitmap DrawCircle(int j) { const float angle = 360.0F / 8; Bitmap map = new Bitmap(Width, Height); Graphics g = Graphics.FromImage(map); g.TranslateTransform(Width / 2.0F, Height / 2.0F); g.RotateTransform(angle * _value); g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.SmoothingMode = SmoothingMode.AntiAlias; int[] a = new int[8] { 25, 50, 75, 100, 125, 150, 175, 200 }; for (int i = 1; i <= 8; i++) { int alpha = a[(i + j - 1) % 8]; Color drawColor = Color.FromArgb(alpha, _circleColor); using (SolidBrush brush = new SolidBrush(drawColor)) { float sizeRate = 3.5F / _circleSize; float size = Width / (6 * sizeRate); float diff = (Width / 10.0F) - size; float x = (Width / 80.0F) + diff; float y = (Height / 80.0F) + diff; g.FillEllipse(brush, x, y, size, size); g.RotateTransform(angle); } } //g.DrawLine(new Pen(Color.Red),1,1,10,10); //g.Save(); return map; } } } ================================================ FILE: FreeHttpControl/ControlHelper/LoadWindowService.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl.ControlHelper { public class LoadWindowService { Form loadForm = null; LoadBitmap loadBitmap = new LoadBitmap(new System.Drawing.Size(100,100)); PictureBox pictureBox = new PictureBox(); Timer timer = new System.Windows.Forms.Timer(); System.Timers.Timer asyncTimer = new System.Timers.Timer(); int loadTime = 0; bool isInload = false; public LoadWindowService() { pictureBox.SizeMode = PictureBoxSizeMode.Zoom; timer.Interval = 300; timer.Tick += Timer_Tick; asyncTimer.Elapsed += Timer_Elapsed; } private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { Timer_Tick(null, null); } private void Timer_Tick(object sender, EventArgs e) { if(loadForm==null || loadForm.Created==false) { StopLoad(); return; } pictureBox.Image = loadBitmap.DrawCircle(loadTime); loadTime++; } public void StartLoad(Form form,bool isAsync = false) { if (isInload) return; loadForm = form; loadForm.Controls.Add(pictureBox); loadForm.FormClosed += new FormClosedEventHandler((o, e) => { StopLoad(); }); pictureBox.Dock = DockStyle.Fill; pictureBox.BringToFront(); loadBitmap.SetSize(pictureBox.Width > pictureBox.Height ? pictureBox.Height : pictureBox.Width); isInload = true; loadTime = 0; if (isAsync) { asyncTimer.Start(); } else { timer.Start(); } } public void StopLoad() { if (!isInload) return; loadForm?.Controls.Remove(pictureBox); loadForm = null; isInload = false; timer.Stop(); asyncTimer.Stop(); } } } ================================================ FILE: FreeHttpControl/ControlHelper/MarkControlService.cs ================================================ using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public class MarkControlService:IDisposable { /// /// the information for the mark Control /// class RemindControlInfo { public int RemindTime { get; set; } public Color OriginColor { get; set; } public RemindControlInfo(int yourRemindTime, Color yourOriginColor) { RemindTime = yourRemindTime; OriginColor = yourOriginColor; } } Timer myTimer = new Timer(); Dictionary remindItemDc; Dictionary remindControlDc; public MarkControlService(int clickTime) { remindItemDc = new Dictionary(); remindControlDc = new Dictionary(); myTimer.Interval = clickTime; myTimer.Tick += myTimer_Tick; myTimer.Start(); } void myTimer_Tick(object sender, EventArgs e) { if (remindItemDc.Count > 0) { //MyControlHelper.SetControlFreeze(lv_requestRuleList); List tempRemoveItem = new List(); List tempHighlightList = new List(); tempHighlightList.AddRange(remindItemDc.Keys); foreach (var tempHighlightItem in tempHighlightList) { if(tempHighlightItem==null) { tempRemoveItem.Add(tempHighlightItem); continue; } remindItemDc[tempHighlightItem].RemindTime--; if (remindItemDc[tempHighlightItem].RemindTime == 0) { tempRemoveItem.Add(tempHighlightItem); } } //MyControlHelper.SetControlUnfreeze(lv_requestRuleList); System.Threading.Monitor.Enter(remindItemDc); foreach (var tempItem in tempRemoveItem) { tempItem.BackColor = remindItemDc[tempItem].OriginColor; remindItemDc.Remove(tempItem); } System.Threading.Monitor.Exit(remindItemDc); } if (remindControlDc.Count > 0) { List tempRemoveControl = new List(); List tempRemindList = new List(); tempRemindList.AddRange(remindControlDc.Keys); foreach (var tempRemindControl in tempRemindList) { remindControlDc[tempRemindControl].RemindTime--; if (remindControlDc[tempRemindControl].RemindTime == 0) { tempRemoveControl.Add(tempRemindControl); } } System.Threading.Monitor.Enter(remindControlDc); foreach (var tempItem in tempRemoveControl) { tempItem.BackColor = remindControlDc[tempItem].OriginColor; remindControlDc.Remove(tempItem); } System.Threading.Monitor.Exit(remindControlDc); } } public void MarkControl(Control yourControl, Color yourColor, int yourShowTick) { try { if (yourControl != null) { System.Threading.Monitor.Enter(remindControlDc); if (remindControlDc.ContainsKey(yourControl)) { remindControlDc[yourControl] = new RemindControlInfo(yourShowTick, remindControlDc[yourControl].OriginColor); } else { remindControlDc.Add(yourControl, new RemindControlInfo(yourShowTick, yourControl.BackColor)); } System.Threading.Monitor.Exit(remindControlDc); yourControl.BackColor = yourColor; } } catch(Exception ex) { } } public void MarkControl(ListViewItem yourItem, Color yourColor, int yourShowTick) { try { if (yourItem != null) { System.Threading.Monitor.Enter(remindItemDc); if (remindItemDc.ContainsKey(yourItem)) { remindItemDc[yourItem] = new RemindControlInfo(yourShowTick, remindItemDc[yourItem].OriginColor); } else { remindItemDc.Add(yourItem, new RemindControlInfo(yourShowTick, yourItem.BackColor)); } System.Threading.Monitor.Exit(remindItemDc); yourItem.BackColor = yourColor; } } catch (Exception ex) { } } public void SetColor(Control yourControl, Color yourColor) { if (yourControl != null) { if (remindControlDc.ContainsKey(yourControl)) { remindControlDc.Remove(yourControl); } yourControl.BackColor = yourColor; } } public void SetColor(ListViewItem yourItem, Color yourColor) { if (yourItem != null) { if (remindItemDc.ContainsKey(yourItem)) { remindItemDc.Remove(yourItem); } yourItem.BackColor = yourColor; } } public void Dispose() { myTimer.Dispose(); } } } ================================================ FILE: FreeHttpControl/ControlHelper/MyControlHelper.cs ================================================ using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public class MyControlHelper { private const int WM_SETREDRAW = 0xB; /// /// 停止控件刷新 /// /// your Control public static void SetControlFreeze(System.Windows.Forms.Control yourCtr) { UnsafeNativeMethods.SendMessage(yourCtr.Handle, WM_SETREDRAW, 0, IntPtr.Zero); } /// /// 恢复控件刷新 /// /// your Control public static void SetControlUnfreeze(System.Windows.Forms.Control yourCtr) { UnsafeNativeMethods.SendMessage(yourCtr.Handle, WM_SETREDRAW, 1, IntPtr.Zero); yourCtr.Refresh(); } /// /// 为TextBoxBase 控件添加拖放数据的功能 /// /// 需要启用拖放数据的控件 /// 拖放完成后的辅助事件 public static void SetRichTextBoxDropString(System.Windows.Forms.TextBoxBase yourCtr, Action action = null) { if (yourCtr == null) { return; } if (yourCtr is RichTextBox) { ((RichTextBox)yourCtr).AllowDrop = true; } else if (yourCtr is TextBox) { ((TextBox)yourCtr).AllowDrop = true; } else { yourCtr.AllowDrop = true; } yourCtr.DragDrop += (sender, e) => { System.Windows.Forms.TextBoxBase tempTextBoxBase = sender as System.Windows.Forms.TextBoxBase; string tempText = (string)e.Data.GetData(typeof(string)); if (tempText == null || tempTextBoxBase == null) { return; } int selectionStart = tempTextBoxBase.SelectionStart; tempTextBoxBase.Text = tempTextBoxBase.Text.Insert(selectionStart, tempText); tempTextBoxBase.Select(selectionStart, tempText.Length); action?.Invoke(); }; yourCtr.DragEnter += (sender,e)=> { if (e.Data.GetData(typeof(string)) == null) { e.Effect = System.Windows.Forms.DragDropEffects.None; } else { e.Effect = System.Windows.Forms.DragDropEffects.Move; } }; } public static void SetRichTextBoxDropString(System.Windows.Forms.RichTextBox yourRtb) { if(yourRtb==null) { return; } yourRtb.AllowDrop = true; yourRtb.DragDrop += Rtb_DragDrop; yourRtb.DragEnter += Rtb_DragEnter; } private static void Rtb_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if (e.Data.GetData(typeof(string)) == null) { e.Effect = System.Windows.Forms.DragDropEffects.None; } } private static void Rtb_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { System.Windows.Forms.RichTextBox tempRichTextBox = sender as System.Windows.Forms.RichTextBox; string tempText = (string)e.Data.GetData(typeof(string)); if (tempText == null || tempRichTextBox==null) { return; } int selectionStart = tempRichTextBox.SelectionStart; tempRichTextBox.Text = tempRichTextBox.Text.Insert(selectionStart, tempText); tempRichTextBox.Select(selectionStart, tempText.Length); } } [System.Security.SuppressUnmanagedCodeSecurity] internal static class UnsafeNativeMethods { [System.Runtime.InteropServices.DllImport("user32")] public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam); } public static class MyExtensionMethods { public static int GetLatency(this System.Windows.Forms.LinkLabel llb) { //delay:200ms string tempText = llb.Text; int latency = 0; if (tempText.StartsWith("delay:") && tempText.EndsWith("ms")) { tempText = tempText.Substring(6, tempText.Length - 8); if(!int.TryParse(tempText,out latency)) { latency = 0; } } return latency; } public static void SetLatency(this System.Windows.Forms.LinkLabel llb, int latency) { if(latency>0) { llb.Text = string.Format("delay:{0}ms", latency); } else { llb.Text = ""; } } /// /// 添加带颜色内容 /// /// 目标richtextbox /// 输入内容 /// 颜色 /// 是否换行 public static void AddRtbStr(this RichTextBox rtb, string strInput, Color fontColor, bool isNewLine , Font font = null) { lock (rtb) { int p1 = rtb.TextLength; //rtb.SelectionColor = fontColor; if (isNewLine) { rtb.AppendText(strInput + "\n"); //保留每行的所有颜色。 // rtb.Text += strInput + "/n"; //添加时,仅当前行有颜色。 } else { rtb.AppendText(strInput); } int p2 = strInput.Length; rtb.Select(p1, p2); rtb.SelectionColor = fontColor; //rtb.SelectionFont = new Font(FontFamily.GenericMonospace, 14); if(font!=null) { rtb.SelectionFont = font; } rtb.Select(rtb.TextLength, 0); rtb.SelectionColor = rtb.ForeColor; if (font != null) { rtb.SelectionFont = rtb.Font; } } } } } ================================================ FILE: FreeHttpControl/EditCookieForm.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class EditCookieForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditCookieForm)); this.rtb_setValue = new System.Windows.Forms.RichTextBox(); this.tb_name = new System.Windows.Forms.TextBox(); this.rtb_value = new System.Windows.Forms.RichTextBox(); this.lb_info_1 = new System.Windows.Forms.Label(); this.lb_info_2 = new System.Windows.Forms.Label(); this.lb_info_3 = new System.Windows.Forms.Label(); this.bt_ok = new System.Windows.Forms.Button(); this.tb_attribute = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.SuspendLayout(); // // rtb_setValue // this.rtb_setValue.Dock = System.Windows.Forms.DockStyle.Top; this.rtb_setValue.Enabled = false; this.rtb_setValue.Location = new System.Drawing.Point(0, 0); this.rtb_setValue.Name = "rtb_setValue"; this.rtb_setValue.Size = new System.Drawing.Size(449, 70); this.rtb_setValue.TabIndex = 0; this.rtb_setValue.Text = ""; // // tb_name // this.tb_name.Location = new System.Drawing.Point(87, 76); this.tb_name.Name = "tb_name"; this.tb_name.Size = new System.Drawing.Size(350, 21); this.tb_name.TabIndex = 1; this.tb_name.TextChanged += new System.EventHandler(this.tb_attribute_TextChanged); // // rtb_value // this.rtb_value.Location = new System.Drawing.Point(87, 103); this.rtb_value.Name = "rtb_value"; this.rtb_value.Size = new System.Drawing.Size(350, 85); this.rtb_value.TabIndex = 2; this.rtb_value.Text = ""; this.rtb_value.TextChanged += new System.EventHandler(this.tb_attribute_TextChanged); // // lb_info_1 // this.lb_info_1.AutoSize = true; this.lb_info_1.Location = new System.Drawing.Point(7, 80); this.lb_info_1.Name = "lb_info_1"; this.lb_info_1.Size = new System.Drawing.Size(35, 12); this.lb_info_1.TabIndex = 4; this.lb_info_1.Text = "Name:"; // // lb_info_2 // this.lb_info_2.AutoSize = true; this.lb_info_2.Location = new System.Drawing.Point(8, 112); this.lb_info_2.Name = "lb_info_2"; this.lb_info_2.Size = new System.Drawing.Size(41, 12); this.lb_info_2.TabIndex = 5; this.lb_info_2.Text = "Value:"; // // lb_info_3 // this.lb_info_3.AutoSize = true; this.lb_info_3.Location = new System.Drawing.Point(9, 199); this.lb_info_3.Name = "lb_info_3"; this.lb_info_3.Size = new System.Drawing.Size(71, 12); this.lb_info_3.TabIndex = 6; this.lb_info_3.Text = "Attributes:"; // // bt_ok // this.bt_ok.Location = new System.Drawing.Point(362, 219); this.bt_ok.Name = "bt_ok"; this.bt_ok.Size = new System.Drawing.Size(75, 23); this.bt_ok.TabIndex = 7; this.bt_ok.Text = "confirm"; this.bt_ok.UseVisualStyleBackColor = true; this.bt_ok.Click += new System.EventHandler(this.bt_ok_Click); // // tb_attribute // this.tb_attribute.Location = new System.Drawing.Point(87, 195); this.tb_attribute.Name = "tb_attribute"; this.tb_attribute.Size = new System.Drawing.Size(350, 21); this.tb_attribute.TabIndex = 3; this.tb_attribute.WatermarkText = "Domain=company.cn; HttpOnly;Path=/; Expires=Wed, 30 Aug 2019 00:00:00 GMT"; this.tb_attribute.TextChanged += new System.EventHandler(this.tb_attribute_TextChanged); // // EditCookieForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(449, 254); this.Controls.Add(this.bt_ok); this.Controls.Add(this.lb_info_3); this.Controls.Add(this.lb_info_2); this.Controls.Add(this.lb_info_1); this.Controls.Add(this.tb_attribute); this.Controls.Add(this.rtb_value); this.Controls.Add(this.tb_name); this.Controls.Add(this.rtb_setValue); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "EditCookieForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "EditCookieForm"; this.Load += new System.EventHandler(this.EditCookieForm_Load); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.RichTextBox rtb_setValue; private System.Windows.Forms.TextBox tb_name; private System.Windows.Forms.RichTextBox rtb_value; private WatermakTextBox tb_attribute; private System.Windows.Forms.Label lb_info_1; private System.Windows.Forms.Label lb_info_2; private System.Windows.Forms.Button bt_ok; private System.Windows.Forms.Label lb_info_3; } } ================================================ FILE: FreeHttpControl/EditCookieForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class EditCookieForm : Form { ListView editListView; public EditCookieForm(ListView yourEditListView) { InitializeComponent(); editListView = yourEditListView; tb_name.Text = "name"; rtb_value.Text = "vaule"; tb_attribute.Text = "Path=/"; } public EditCookieForm(ListView yourEditListView , string name, string vaule, string attribute) : this(yourEditListView) { if (name != null) { tb_name.Text = name; } if (vaule != null) { rtb_value.Text = vaule; } if (attribute != null) { tb_attribute.Text = attribute; } } private void EditCookieForm_Load(object sender, EventArgs e) { UpdataSetText(); //this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximumSize = this.Size; this.MinimumSize = this.Size; } private void tb_attribute_TextChanged(object sender, EventArgs e) { UpdataSetText(); } private void bt_ok_Click(object sender, EventArgs e) { if (tb_attribute.Text.Contains("Domain=www.yourhost.com")) { MessageBox.Show("please change Domain=www.yourhost.com to your web host\r\nwww.yourhost.com is just a example", "edit Domain"); editListView.Tag = null; return; } editListView.Items.Add(rtb_setValue.Text); this.Close(); } private void UpdataSetText() { if (tb_attribute.Text != "") { rtb_setValue.Text = string.Format("Set-Cookie: {0}={1}; {2}", tb_name.Text, rtb_value.Text, tb_attribute.Text); } else { rtb_setValue.Text = string.Format("Set-Cookie: {0}={1}", tb_name.Text, rtb_value.Text); } } } } ================================================ FILE: FreeHttpControl/EditCookieForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAgGQAAAEAIABozgAAFgAAACgAAACAAAAAyAAAAAEAIAAAAAAAAMgAAGmKAABpigAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAABfAAAAsAAAAOAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA9AAAAMIAAACKAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAAlwAA APIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADJAAAATAAA AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAABAAAAUAAAANAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADwAAAAigAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAADkAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAAiAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAATAAAAuAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADvAAAATAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAHsAAAD+AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAADKAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAuAAAA4gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAB0AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFsAAAD2AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKwAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA+QAA APkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAA APkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAA APkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAA APkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAA APkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAA APkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1QAA ABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAKsAAABOAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAA AE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAA AE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAA AE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAA AE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAA AE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABPAAAATwAAAE8AAABNAAAAdAAA APcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADpAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP4AAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ADYAAADzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAPMAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAA2AAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABfAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAQAAAFsAAACoAAAAZAAAACMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAADzAAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAswAAAP8AAAD9AAAA3AAA AJwAAABQAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAANgAAAPMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAACDAAAA/wAAAP8AAAD/AAAA/wAAAPcAAADPAAAAiwAAAD8AAAAPAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAA8wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4AAAD7AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA8AAAAL4AAAB0AAAAMAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADYAAADzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAF8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAN8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAADnAAAArwAAAGAAAAAhAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAPMAAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAvwAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAANsAAACaAAAAUAAA ABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA2AAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABfAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD2AAAAzgAAAIcAAAA9AAAADgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAADzAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AFkAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAPAAAAC+AAAAdAAAADAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAPMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAXwAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQAAAOMAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAywAA ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAA8wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAOAAAAxAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANoAAABNAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAADzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNAAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADPAAAAOgAA AAAAAAAAAAAAJQAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAA APMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAF8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAAtAAAACkAAAAAAAAAAAAAADcAAADJAAAA4gAAAEcAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALQAAAOoAAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAJ4AAAAZAAAAAAAA AAAAAABGAAAA2AAAAP8AAAD/AAAA1QAAAC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ADYAAADzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAASAAAAxgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAPkAAACNAAAADwAAAAAAAAADAAAAWwAAAOIAAAD/AAAA/wAAAP8AAAD/AAAAvAAA AB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAPMAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADrAAAAcQAAAAgAAAAAAAAACQAA AHoAAADvAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAArAAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAA2AAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABfAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA4gAAAFcAAAABAAAAAAAAAA8AAACLAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAAlwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYAAADzAAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAA APAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANgAAABGAAAAAAAAAAAAAAAbAAAAoAAA APwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD4AAAAeAAAAAQAAAAAAAAAAAAA AAAAAAAAAAAANgAAAPMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAygAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAC/AAAAMwAAAAAAAAAAAAAALQAAALwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAADxAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAA2AAAA8wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAEAAACjAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAqgAAACAAAAAAAAAAAAAAADoAAADOAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADrAAAAUAAA AAAAAAAAAAAAAAAAADYAAADzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAF8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGcAAAD+AAAA/wAAAP8AAAD/AAAA/AAA AJsAAAAUAAAAAAAAAAAAAABOAAAA2QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADZAAAANwAAAAAAAAAAAAAANgAAAPMAAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAPQAAAPIAAAD/AAAA/wAAAPEAAAB+AAAADAAAAAAAAAAFAAAAawAAAOkAAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAADHAAAAJwAAAAAAAAA2AAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABfAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAA0AAAAP8AAADpAAAAZAAA AAQAAAAAAAAACwAAAH0AAAD2AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAC6AAAAGAAAADMAAADzAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAQAAACqAAAA5AAAAFMAAAAAAAAAAAAAABQAAACSAAAA+QAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAACbAAAARAAAAPIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAXwAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYAAAA/AAAAAAAA AAAAAAAiAAAAsAAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAACzAAAA9QAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAMMAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ADMAAADQAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAMcAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAABfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAANAAAANUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASwAAAOoAAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAPEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABfAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAdQAA APcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAkQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAXwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAATAAAArAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAABeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAugAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAHEAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAsAAAAzwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA3QAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAA5AAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAygAA ACYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVAAAA6wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAsgAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAEAAABqAAAA9AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAAogAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACKAAAA/gAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAAiQAAAAYAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAA4AAACdAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD0AAAAbAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAACwAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADtAAAAWgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAAADMAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADlAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ADoAAADaAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAADPAAAALgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEkAAADkAAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAC+AAAAIAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAGIAAADzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAACwAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAH4AAAD6AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAACRAAAACgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAI8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAAB5AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAA AKgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA APQAAABnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAMQAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOgAAABLAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAALwAAAM8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAANcAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAN8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAMsAAAApAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAWgAAAPEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAALcAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAbwAA APUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA AJoAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAgwAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAIgAAAAIAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAOAAAAoQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA+gAAAF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAtwAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADCAAAALwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAmAAAAxgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD+AAAAswAAACIAAAAAAAAAAgAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAA2wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAJQAAAAWAAAAAAAAAAMAAABhAAAAvwAA ADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAA6QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA APUAAAB8AAAACwAAAAAAAAAJAAAAdAAAAO8AAAD/AAAAvwAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAABqAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADsAAAAbAAAAAQAAAAAAAAAEwAAAJMAAAD4AAAA/wAA AP8AAAD/AAAAqAAAABMAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAACHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAADzAAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA2gAA AFAAAAABAAAAAAAAAB0AAACoAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAmAAAAAsAAAAAAAAAAAAA AAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAANQAAAPMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAMwAAAA6AAAAAAAAAAAAAAAsAAAAuQAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD7AAAAewAAAAMAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAAjAAAAAwAAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAA AA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAA AA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAA AA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAA AA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAA AA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAAsAAABBAAAA8wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAC+AAAALAAA AAAAAAAAAAAAQwAAANEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADwAAAAYQAA AAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADeAAAAvQAAAL4AAAC+AAAAvgAA AL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAA AL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAA AL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAA AL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAA AL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAAAL4AAAC+AAAAvgAA AL4AAAC+AAAAvQAAAMoAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD8AAAAoQAAABwAAAAAAAAAAQAAAFMAAADiAAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADpAAAATwAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAIoAAAAPAAAAAAAA AAYAAABpAAAA6gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAADbAAAAPwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAPEAAAB5AAAACAAAAAAAAAAOAAAAiQAAAPQAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADVAAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADhAAAAXAAAAAMAAAAAAAAAFwAA AJwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA1gAAAEUAAAAAAAAAAAAAACUAAACvAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAMkAAAA2AAAAAAAAAAAAAAA5AAAAyQAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AN8AAACpAAAAJAAAAAAAAAAAAAAASAAAANoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAANoAAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAcQAAAA4AAAAAAAAABAAAAF8AAADkAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAADUAAAARAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAABeAAAAAAAAAAoAAAB+AAAA8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAxwAAADUAAAAAAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAF8AAAAAAAAAIAAAANEAAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAALkAAAAnAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAAXwAAAAAAAAAAAAAATQAAAOgAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAACcAAAAGgAAAAAAAAAAAAAAAAAA AP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABfAAAAAAAAAAAAAAAAAAAAaQAA APUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD3AAAAgwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAA1wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA9gAAAEsAAAAAAAAAAAAAAAAAAAAEAAAAewAAAPgAAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA8AAAAHIAAAAGAAAAAAAAAAAAAAAAAAAAAAAA AAAAAACpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAIgAAAAAAAAAAAAAAAAAA AAAAAAAKAAAAkQAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AN4AAABXAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH0AAAD8AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAMcAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAsAAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADQAAAAPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAARgAAAPMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAlAAAAAIAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAiAAAAwAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAwwAA ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAvgAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAPMAAABOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAAAA0AAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAKYAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAABFAAAA6wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAkwAAAAYAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDAAAA2wAAAP8AAAD/AAAA/wAAAPMAAACMAAAAEgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAACBAAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAM0AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAA1AAAAlAAAALUAAACcAAAATgAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACvAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADiAAAASwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACwAAAAIAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ABYAAACBAAAA6wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD8AAAAtgAAADkAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAABEAAAAvgAAAPMAAAD8AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD2AAAA3wAAAHkAAAARAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAXAAAARgAAAH0AAACpAAAA1wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAO0AAAC4AAAAkwAA AFoAAAArAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAB////+AAAAAAAAAAAAAAAAf////AAAAAAAA AAAAAAAAD////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAA////wAA AAAAAAAAAAAAAAP///8AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH/ //8AAAAAAAAAAAAAAAAB////AB/////////////AAf///wAf//////wP////wAH///8AH//////4A/// /8AB////AB//////+AB////AAf///wAf//////gAH///wAH///8AH//////4AAP//8AB////AB////// +AAAf//AAf///wAf//////wAAB//wAH///8AH//////8AAAD/8AB////AB///////AAAAP/AAf///wAf //////wAAAD/wAH///8AH//////8AAAA/8AB////AB///////gAAAB/AAf///wAf//////4AAAAPwAH/ //8AH//////+AAAAB8AB////AB///////gAAAAPAAf///wAf//////8AAAABwAH///8AH///////AAAA AcAB////AB///////wAAAADAAf///wAf//////8AAAAAQAH///8AH///////gAAAAAAB////AB////// /4AAAAAAAf///wAf//////+AAAAAAAH///8AH///////wAAAAAAB////AB///////8AAAAAAAf///wAf ///////AAAAAAAH///8AH///////wAAAAAAB////AB///////8AAAAAAAf///wAf///////AAAAAAAH/ //8AH///////+AAAAAAB////AB////////gAAAAAAf///wAf///////4AAAAAAH///8AH////////AAA AAAB////AB////////4AAAAAAf///wAf////////AAAAAAH///8AH////////4AAAAAB////AB////// //+AAAAAAP///wAf////////wAAAAAB///8AH////////+AAAAAAP///AB/////////wAAAAAB///wAf ////////+AAAAAAf//8AH/////////wAAAAAD///AB/////////8AAAAAAf//wAf/////////gAAAAAD //8AH/////////8AAAAAAf//AB//////////wAAAAAD//wAf/////////8AAAAAAf/8AH//////////g AAAAAH//AB//////////8AAAAAA//wAf//////////gAAAAAD/8AH//////////8AAAAAA//AB////// /////gAAAAAH/wAf//////////4AAAAAA/8AH///////////AAAAAAH/AB///////////4AAAAAA/wAf ///////////AAAAAAP8AH///////////4AAAAAB/AB////////////AAAAAAfwAf///////////4AAAA AB8AH///////////+AAAAAAPAB////////////wAAAAADwAf///////////+AAAAAAMAH/////////// /wAAAAABAB////////////+AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAACAAAPAAAAAAAA AAAAAAAAAwAAPwAAAAAAAAAAAAAAAAOAAH8AAAAAAAAAAAAAAAADwAD/AAAAAAAAAAAAAAAAB+AB/wAA AAAAAAAAAAAAAA/wB/8AAAAAAAAAAAAAAAAP+A//gAAAAAAAAAAAAAAAH////8AAAAAAAAAAAAAAAD// //8= ================================================ FILE: FreeHttpControl/EditKeyVaule.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class EditKeyVaule { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditKeyVaule)); this.lb_info_2 = new System.Windows.Forms.Label(); this.lb_info_1 = new System.Windows.Forms.Label(); this.rtb_value = new System.Windows.Forms.RichTextBox(); this.tb_key = new System.Windows.Forms.TextBox(); this.bt_ok = new System.Windows.Forms.Button(); this.SuspendLayout(); // // lb_info_2 // this.lb_info_2.AutoSize = true; this.lb_info_2.Location = new System.Drawing.Point(14, 48); this.lb_info_2.Name = "lb_info_2"; this.lb_info_2.Size = new System.Drawing.Size(41, 12); this.lb_info_2.TabIndex = 9; this.lb_info_2.Text = "Value:"; // // lb_info_1 // this.lb_info_1.AutoSize = true; this.lb_info_1.Location = new System.Drawing.Point(13, 16); this.lb_info_1.Name = "lb_info_1"; this.lb_info_1.Size = new System.Drawing.Size(29, 12); this.lb_info_1.TabIndex = 8; this.lb_info_1.Text = "Key:"; // // rtb_value // this.rtb_value.Location = new System.Drawing.Point(93, 39); this.rtb_value.Name = "rtb_value"; this.rtb_value.Size = new System.Drawing.Size(250, 111); this.rtb_value.TabIndex = 7; this.rtb_value.Text = ""; // // tb_key // this.tb_key.Location = new System.Drawing.Point(93, 12); this.tb_key.Name = "tb_key"; this.tb_key.Size = new System.Drawing.Size(250, 21); this.tb_key.TabIndex = 6; // // bt_ok // this.bt_ok.Location = new System.Drawing.Point(268, 157); this.bt_ok.Name = "bt_ok"; this.bt_ok.Size = new System.Drawing.Size(75, 23); this.bt_ok.TabIndex = 10; this.bt_ok.Text = "confirm"; this.bt_ok.UseVisualStyleBackColor = true; this.bt_ok.Click += new System.EventHandler(this.bt_ok_Click); // // AddHead // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(351, 185); this.Controls.Add(this.bt_ok); this.Controls.Add(this.lb_info_2); this.Controls.Add(this.lb_info_1); this.Controls.Add(this.rtb_value); this.Controls.Add(this.tb_key); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "AddHead"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "AddHead"; this.Load += new System.EventHandler(this.EditKeyVaule_Load); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label lb_info_2; private System.Windows.Forms.Label lb_info_1; private System.Windows.Forms.RichTextBox rtb_value; private System.Windows.Forms.TextBox tb_key; private System.Windows.Forms.Button bt_ok; } } ================================================ FILE: FreeHttpControl/EditKeyVaule.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class EditKeyVaule : Form { ListView editListView; string splitStr; //splitStr ": " bool isAdd; //add or edit mode bool isUnique; //is not allow repetition public EditKeyVaule(ListView yourEditListView , bool yourIsAdd ,string yourSplitStr) { InitializeComponent(); editListView = yourEditListView; isAdd = yourIsAdd; splitStr = yourSplitStr == null ? ": " : yourSplitStr; } public EditKeyVaule(ListView yourEditListView, string yourHeadKey,string yourSplitStr) : this(yourEditListView, true, yourSplitStr) { tb_key.Text = yourHeadKey; tb_key.Enabled = false; } public EditKeyVaule(ListView yourEditListView, bool yourIsAdd, bool yourIsUnique, string yourSplitStr) : this(yourEditListView, yourIsAdd, yourSplitStr) { isUnique = yourIsUnique; } private void EditKeyVaule_Load(object sender, EventArgs e) { if(!isAdd) { string headStr= editListView.SelectedItems[0].Text; if (headStr.Contains(splitStr)) { tb_key.Text = headStr.Remove(headStr.IndexOf(splitStr)); rtb_value.Text = headStr.Substring(headStr.IndexOf(splitStr) + splitStr.Length); } } //this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximumSize = this.Size; this.MinimumSize = this.Size; } private void bt_ok_Click(object sender, EventArgs e) { if(tb_key.Text==""||rtb_value.Text=="") { MessageBox.Show("input key and value","Stop" , MessageBoxButtons.OK, MessageBoxIcon.Stop); } else { string tempItemStr = String.Format("{0}{1}{2}", tb_key.Text, splitStr, rtb_value.Text); if(isUnique) { foreach(ListViewItem tempItem in editListView.Items) { if (tempItem.Text == tempItemStr) { if(!isAdd && tempItem==editListView.SelectedItems[0]) { continue; } MessageBox.Show("Find the same data in the list", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } } } if (isAdd) { editListView.Items.Add(tempItemStr); } else { editListView.SelectedItems[0].Text = tempItemStr; } this.Close(); } } } } ================================================ FILE: FreeHttpControl/EditKeyVaule.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjQAJAJkALQCXAGUAmACYAJgAzACY AOcAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZ APAAmQDwAJgA5wCYAMwAmACYAJcAZQCZAC0AjQAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAlQApAJkAkQCYANkAmAD4AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA+ACY ANkAmQCRAJUAKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwACAJcAfgCYAPEAmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmADxAJcAfgB/AAIAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJcAJQCY AL0AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJgAvQCXACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVAC4AmADbAJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA2wCV AC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQAjAJgA4ACZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA4ACZACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAH8ABACYAL8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCY AP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJgAvwB/AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQB9AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJcA/wCWAP8CmgL/BZwH/wadCP8GnQj/Bp0I/wad CP8GnQj/Bp0I/wadCP8GnQj/Bp0I/wadCP8GnQj/Bp0I/wadCP8GnQj/Bp0I/wadCP8FnAf/ApoC/wCW AP8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkAfQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAJcAJQCYAPQAmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA/wCX AP8Uph3/NbtL/0vJa/9U0Hn/WNJ+/1fRff9X0X3/V9F9/1fRff9X0X3/V9F9/1fRff9X0X3/V9F9/1fR ff9X0X3/V9F9/1fRff9X0X3/WNJ+/1TQef9LyWv/NbtL/xSmHf8AlwD/AJgA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmAD0AJcAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmACTAJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCXAP8DmwX/NrxO/13Whv9k2Y//YdiL/2DXif9f1on/X9eJ/1/X if9f14n/X9eJ/1/Xif9f14n/X9eJ/1/Xif9f14n/X9eJ/1/Xif9f14n/X9eJ/1/Xif9f1on/YNeJ/2HY i/9k2Y//XdaG/za8Tv8DmwX/AJcA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AlwCSAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAH8ACACYAN8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmAD/BZsI/0XG Yf9l2pD/YdeJ/1/Wh/9f1of/X9aH/2DWiP9g1oj/YNaI/2DWiP9g1oj/YNaI/2DWiP9g1oj/YNaI/2DW iP9g1oj/YNaI/2DWiP9g1oj/YNaI/2DWiP9f1of/X9aH/1/Wh/9h14n/ZdqQ/0XGYf8Fmwj/AJgA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCYAN8AfwAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlgAxAJgA/ACZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCWAP84vU//Z9yS/2DXiP9g14j/YdeI/2LYiv9g14j/X9eH/1/X h/9f14f/X9eH/1/Xh/9f14f/X9eH/1/Xh/9f14f/X9eH/1/Xh/9f14f/X9eH/1/Xh/9f14f/X9eH/2DX iP9i2Ir/YdeI/2DXiP9g14j/Z9yS/zi9T/8AlgD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA/ACW ADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAGYAmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AlwD/FKYc/2HX iP9j2Iv/YdeJ/2LYiv9g14j/TtN7/0PQc/8/z3D/QM9x/0DPcf9Az3H/QM9x/0DPcf9Az3H/QM9x/0DP cf9Az3H/QM9x/0DPcf9Az3H/QM9x/0DPcf8/z3D/Q9Bz/07Te/9g14j/YtiK/2HXif9j2Iv/YdeI/xSm HP8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAnACZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCWAP85vlH/Z9yT/2HYiv9i2Iv/X9eI/0TQdP83zWv/Oc5s/zrO bP86zmz/Os5s/zrObP86zmz/Os5s/zrObP86zmz/Os5s/zrObP86zmz/Os5s/zrObP86zmz/Os5s/zrO bP85zmz/N81r/0TQdP9f14j/YtiL/2HYiv9n3JP/Ob5R/wCWAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAAUAmADOAJkA/wCZAP8AmQD/AJkA/wCZAP8AmAD/ApsD/1DM cf9m2o//YtiL/2XYjP9O03z/OM5r/zvPbv88z27/O89u/zvPbv87z27/O89u/zvPbv87z27/O89u/zvP bv87z27/O89u/zvPbv87z27/O89u/zvPbv87z27/O89u/zzPbv87z27/OM5r/07TfP9l2Iz/YtiL/2ba j/9QzHH/ApsD/wCYAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCYAM4AmQAFAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJEADgCZ AOsAmQD/AJkA/wCZAP8AmQD/AJkA/wCYAP8GnQj/W9WB/2baj/9k2Yz/Y9mM/0XRdf88z27/PtBv/z7Q b/8+0G//PtBv/z7Qb/8+0G//PtBv/z7Qb/8+0G//PtBv/z7Qb/8+0G//PtBv/z7Qb/8+0G//PtBv/z7Q b/8+0G//PtBv/z7Qb/88z27/RdF1/2PZjP9k2Yz/ZtqP/1vVgf8GnQj/AJgA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA6wCRAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQAPAJgA8QCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA/wad Cf9g1oX/Z9uP/2bajv9k2oz/RdF0/z7QcP8/0HH/P9Bx/z/Qcf8/0HH/P9Bx/z/Qcf8/0HH/P9Bx/z/Q cf8/0HH/P9Bx/z/Qcf8/0HH/P9Bx/z/Qcf8/0HH/P9Bx/z/Qcf8/0HH/P9Bx/z7QcP9F0XT/ZNqM/2ba jv9n24//YNaF/wadCf8AmAD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmADxAJkADwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZ AA8AmQDwAJkA/wCZAP8AmQD/AJkA/wCZAP8AmAD/Bp0J/2HWhv9p25H/aNqP/2bajv9G0nb/P9Fx/0DR cv9A0XL/QNFy/0DRcv9A0XL/QNFy/0DRcv9A0XL/QNFy/0DRcv9A0XL/QNFy/0DRcv9A0XL/QNFy/0DR cv9A0XL/QNFy/0DRcv9A0XL/P9Fx/0bSdv9m2o7/aNqP/2nbkf9h1ob/Bp0J/wCYAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAPAAmQAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkADwCZAPAAmQD/AJkA/wCZAP8AmQD/AJkA/wCY AP8GnQn/YteH/2rck/9p25D/Z9uP/0nTd/9C0nL/Q9Jz/0PSc/9D0nP/Q9Jz/0PSc/9D0nP/Q9Jz/0PS c/9D0nP/Q9Jz/0PSc/9D0nP/Q9Jz/0PSc/9D0nP/Q9Jz/0PSc/9D0nP/Q9Jz/0PSc/9C0nL/SdN3/2fb j/9p25D/atyT/2LXh/8GnQn/AJgA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA8ACZAA8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAmQAPAJkA8ACZAP8AmQD/AJkA/wCZAP8AmQD/AJgA/wadCf9k2Ij/a92U/2rckf9o3JD/StN5/0PS dP9E0nX/RNJ1/0TSdf9E0nX/RNJ1/0TSdf9E0nX/RNJ1/0TSdf9E0nX/RNJ1/0TSdf9E0nX/RNJ1/0TS df9E0nX/RNJ1/0TSdf9E0nX/RNJ1/0PSdP9K03n/aNyQ/2rckf9r3ZT/ZNiI/wadCf8AmAD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQDwAJkADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAA8AmQDwAJkA/wCZAP8AmQD/AJkA/wCZ AP8AmAD/B50J/2XYif9t3ZX/bNyS/2rckf9M1Hv/RdN2/0bTd/9G03f/RtN3/0bTd/9G03f/RtN3/0bT d/9G03f/RtN3/0bTd/9G03f/RtN3/0bTd/9G03f/RtN3/0bTd/9G03f/RtN3/0bTd/9G03f/RdN2/0zU e/9q3JH/bNyS/23dlf9l2In/B50J/wCYAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAPAAmQAPAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAJkADwCZAPAAmQD/AJkA/wCZAP8AmQD/AJkA/wCYAP8HnQn/ZtiJ/2/dlf9t3JL/bNyR/07V fP9H1Hf/SNR4/0jUeP9I1Hj/SNR4/0jUeP9I1Hj/SNR4/0jUeP9I1Hj/SNR4/0jUeP9I1Hj/SNR4/0jU eP9I1Hj/SNR4/0jUeP9I1Hj/SNR4/0jUeP9H1Hf/TtV8/2zckf9t3JL/b92V/2bYif8HnQn/AJgA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA8ACZAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQAPAJkA8ACZAP8AmQD/AJkA/wCZ AP8AmQD/AJgA/wedCf9n2Iv/cN2X/2/clP9t3JP/T9V9/0jUeP9J1Hn/SdR5/0nUef9J1Hn/SdR5/0nU ef9J1Hn/SdR5/0nUef9J1Hn/SdR5/0nUef9J1Hn/SdR5/0nUef9J1Hn/SdR5/0nUef9J1Hn/SdR5/0jU eP9P1X3/bdyT/2/clP9w3Zf/Z9iL/wedCf8AmAD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQDwAJkADwAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAACZAA8AmQDwAJkA/wCZAP8AmQD/AJkA/wCZAP8AmAD/B50J/2najP9y35j/cN6V/2/e lP9S13//S9Z6/0zWe/9M1nv/TNZ7/0zWe/9M1nv/TNZ7/0zWe/9M1nv/TNZ7/0zWe/9M1nv/TNZ7/0zW e/9M1nv/TNZ7/0zWe/9M1nv/TNZ7/0zWe/9M1nv/S9Z6/1LXf/9v3pT/cN6V/3LfmP9p2oz/B50J/wCY AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAPAAmQAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkADwCZAPAAmQD/AJkA/wCZ AP8AmQD/AJkA/wCYAP8HnQn/atuN/3Pgmf9x35b/cN+V/1PYgP9N13v/Ttd8/07XfP9O13z/Ttd8/07X fP9O13z/Ttd8/07XfP9O13z/Ttd8/07XfP9O13z/Ttd8/07XfP9O13z/Ttd8/07XfP9O13z/Ttd8/07X fP9N13v/U9iA/3Dflf9x35b/c+CZ/2rbjf8HnQn/AJgA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA8ACZ AA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAmQAPAJkA8ACZAP8AmQD/AJkA/wCZAP8AmQD/AJgA/wedCf9r24//dOCb/3Lf mP9x35f/VNiC/07Xff9P137/T9d+/0/Xfv9P137/T9d+/0/Xfv9P137/T9d+/0/Xfv9P137/T9d+/0/X fv9P137/T9d+/0/Xfv9P137/T9d+/0/Xfv9P137/T9d+/07Xff9U2IL/cd+X/3LfmP904Jv/a9uP/wed Cf8AmAD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQDwAJkADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAA8AmQDwAJkA/wCZ AP8AmQD/AJkA/wCZAP8AmAD/B50J/23bkP924Jz/dN+Z/3PfmP9X2YT/Udh//1LYgP9S2ID/UtiA/1LY gP9S2ID/UtiA/1LYgP9S2ID/UtiA/1LYgP9S2ID/UtiA/1LYgP9S2ID/UtiA/1LYgP9S2ID/UtiA/1LY gP9S2ID/Udh//1fZhP9z35j/dN+Z/3bgnP9t25D/B50J/wCYAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ APAAmQAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAJkADwCZAPAAmQD/AJkA/wCZAP8AmQD/AJkA/wCYAP8HnQn/b92S/3ji nf924Zr/deGZ/1nahf9T2YD/VNmB/1TZgf9U2YH/VNmB/1TZgf9U2YH/VNmB/1TZgf9U2YH/VNmB/1TZ gf9U2YH/VNmB/1TZgf9U2YH/VNmB/1TZgf9U2YH/VNmB/1TZgf9T2YD/WdqF/3Xhmf924Zr/eOKd/2/d kv8HnQn/AJgA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA8ACZAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQAPAJkA8ACZ AP8AmQD/AJkA/wCZAP8AmQD/AJgA/wedCv9w3pP/eeOf/3finP924pv/W9uH/1Xagv9W2oP/VtqD/1ba g/9W2oP/VtqD/1bag/9W2oP/VtqD/1bag/9W2oP/VtqD/1bag/9W2oP/VtqD/1bag/9W2oP/VtqD/1ba g/9W2oP/VtqD/1Xagv9b24f/duKb/3finP9545//cN6T/wedCv8AmAD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQDwAJkADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAA8AmQDwAJkA/wCZAP8AmQD/AJkA/wCZAP8AmAD/B50K/3Pe lP9846H/euKe/3ninf9d24n/V9qE/1jahf9Y2oX/WNqF/1jahf9Y2oX/WNqF/1jahf9Y2oX/WNqF/1ja hf9Y2oX/WNqF/1jahf9Y2oX/WNqF/1jahf9Y2oX/WNqF/1jahf9Y2oX/V9qE/13bif954p3/euKe/3zj of9z3pT/B50K/wCYAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAPAAmQAPAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIsACwCZ APAAmQD/AJkA/wCZAP8AmQD/AJkA/wCYAP8InQr/dN6U/33jof974p7/euKd/1/civ9Z24X/WtuG/1rb hv9a24b/WtuG/1rbhv9a24b/WtuG/1rbhv9a24b/WtuG/1rbhv9a24b/WtuG/1rbhv9a24b/WtuG/1rb hv9a24b/WtuG/1rbhv9Z24X/X9yK/3rinf974p7/feOh/3TelP8InQr/AJgA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA8ACLAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAJkABQCJAA0AmQAPAJkADwCZAA8AmQAPAJkADwCZAA8AmQAPAJkADwCZ AA8AmQAPAJkADwCZAA8AmQAPAJkADwCZAA8AmQAeAJgA8QCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA/wid Cv9135X/f+Oi/33in/984p7/Yd2M/1vch/9c3Ij/XNyI/1zciP9c3Ij/XNyI/1zciP9c3Ij/XNyI/1zc iP9c3Ij/XNyI/1zciP9c3Ij/XNyI/1zciP9c3Ij/XNyI/1zciP9c3Ij/XNyI/1vch/9h3Yz/fOKe/33i n/9/46L/dd+V/widCv8AmAD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmADxAJkAHgCZAA8AmQAPAJkADwCZ AA8AmQAPAJkADwCZAA8AmQAPAJkADwCZAA8AmQAPAJkADwCZAA8AmQAPAJkADwCJAA0AmQAFAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNAAkAmQAtAJcAZQCYAJgAmADMAJgA5wCZ APAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZ APAAmAD+AJkA/wCZAP8AmQD/AJkA/wCZAP8AmAD/CJ4K/3ffl/+B5aT/f+Sh/37koP9k3o7/Xt2J/1/d iv9f3Yr/X92K/1/div9f3Yr/X92K/1/div9f3Yr/X92K/1/div9f3Yr/X92K/1/div9f3Yr/X92K/1/d iv9f3Yr/X92K/1/div9f3Yr/Xt2J/2Tejv9+5KD/f+Sh/4HlpP9335f/CJ4K/wCYAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCYAP4AmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZ APAAmQDwAJkA8ACZAPAAmQDwAJgA5wCYAMwAmACYAJcAZQCZAC0AjQAJAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACV ACkAmQCRAJgA2QCYAPgAmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCY AP8Ingr/ed+Y/4Plpf+B5KL/gOSh/2bej/9f3Yr/YN2L/2Ddi/9g3Yv/YN2L/2Ddi/9g3Yv/YN2L/2Dd i/9g3Yv/YN2L/2Ddi/9g3Yv/YN2L/2Ddi/9g3Yv/YN2L/2Ddi/9g3Yv/YN2L/2Ddi/9f3Yr/Zt6P/4Dk of+B5KL/g+Wl/3nfmP8Ingr/AJgA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJgA+ACYANkAmQCRAJUAKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/AAIAlwB+AJgA8QCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA/wieCv964Jr/hOan/4LlpP+B5aP/aN+R/2Le jP9j3o3/Y96N/2Pejf9j3o3/Y96N/2Pejf9j3o3/Y96N/2Pejf9j3o3/Y96N/2Pejf9j3o3/Y96N/2Pe jf9j3o3/Y96N/2Pejf9j3o3/Y96N/2LejP9o35H/geWj/4LlpP+E5qf/euCa/wieCv8AmAD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmADxAJcAfgB/ AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlwAlAJgAvQCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmAD/CJ4K/3vhnP+F56n/g+am/4Lmpf9p4ZL/ZOCN/2Xgjv9l4I7/ZeCO/2Xgjv9l4I7/ZeCO/2Xg jv9l4I7/ZeCO/2Xgjv9l4I7/ZeCO/2Xgjv9l4I7/ZeCO/2Xgjv9l4I7/ZeCO/2Xgjv9l4I7/ZOCN/2nh kv+C5qX/g+am/4Xnqf974Zz/CJ4K/wCYAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgAvQCXACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAJUALgCYANsAmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCYAP8Ingr/fuGd/4jnqv+G5qf/heam/2zh lf9m4JD/Z+CR/2fgkf9n4JH/Z+CR/2fgkf9n4JH/Z+CR/2fgkf9n4JH/Z+CR/2fgkf9n4JH/Z+CR/2fg kf9n4JH/Z+CR/2fgkf9n4JH/Z+CR/2fgkf9m4JD/bOGV/4Xmpv+G5qf/iOeq/37hnf8Ingr/AJgA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJgA2wCVAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZACMAmADgAJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJgA/wieCv+A4p//iuis/4jnqf+H56j/buKW/2nhkv9q4ZP/auGT/2rhk/9q4ZP/auGT/2rh k/9q4ZP/auGT/2rhk/9q4ZP/auGT/2rhk/9q4ZP/auGT/2rhk/9q4ZP/auGT/2rhk/9q4ZP/auGT/2nh kv9u4pb/h+eo/4jnqf+K6Kz/gOKf/wieCv8AmAD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA4ACZACMAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAfwAEAJgAvwCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCY AP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AlwD/Bp0H/4HjoP+M6a3/ieiq/4no qf9w45j/a+KT/2zilP9s4pT/bOKU/2zilP9s4pT/bOKU/2zilP9s4pT/bOKU/2zilP9s4pT/bOKU/2zi lP9s4pT/bOKU/2zilP9s4pT/bOKU/2zilP9s4pT/a+KT/3DjmP+J6Kn/ieiq/4zprf+B46D/Bp0H/wCX AP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCY AP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmAD/AJgA/wCYAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJgAvwB/AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAH0AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AlgD/AJUA/wObBP8HnQn/CZ4L/wieCv8Ingr/CJ4K/wie Cv8Ingr/CJ4K/wieCv8Ingr/CJ4K/wieCv8Ingr/CJ4K/wieCv8Ingr/CJ4K/wieCv8Ingr/CJ4K/wie Cv8Ingr/CJ4K/widCv8QohT/hOOh/43prf+M6Kr/i+iq/3Lkmf9t45X/buOW/27jlv9u45b/buOW/27j lv9u45b/buOW/27jlv9u45b/buOW/27jlv9u45b/buOW/27jlv9u45b/buOW/27jlv9u45b/buOW/27j lv9t45X/cuSZ/4voqv+M6Kr/jemt/4Tjof8QohT/CJ0K/wieCv8Ingr/CJ4K/wieCv8Ingr/CJ4K/wie Cv8Ingr/CJ4K/wieCv8Ingr/CJ4K/wieCv8Ingr/CJ4K/wieCv8Ingr/CJ4K/wieCv8Ingr/CJ4K/wme C/8HnQn/A5sE/wCVAP8AlgD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkAfQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAlwAlAJgA9ACZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AlwD/AJYA/yGr KP9TyGT/dNuO/4Hinv+G5KP/heSi/4Xkov+F5KL/heSi/4Xkov+F5KL/heSi/4Xkov+F5KL/heSi/4Xk ov+F5KL/heSi/4Xkov+F5KL/heSi/4Xkov+F5KL/heSi/4Xkov+F5KL/heSi/4Xko/+N6Kz/juit/47o rf+M6Kz/c+SZ/3DkmP9w5Jj/cOSY/3DkmP9w5Jj/cOSY/3DkmP9w5Jj/cOSY/3DkmP9w5Jj/cOSY/3Dk mP9w5Jj/cOSY/3DkmP9w5Jj/cOSY/3DkmP9w5Jj/cOSY/3DkmP9z5Jn/jOis/47orf+O6K3/jeis/4Xk o/+F5KL/heSi/4Xkov+F5KL/heSi/4Xkov+F5KL/heSi/4Xkov+F5KL/heSi/4Xkov+F5KL/heSi/4Xk ov+F5KL/heSi/4Xkov+F5KL/heSi/4Xkov+F5KL/huSj/4Hinv90247/U8hk/yGrKP8AlgD/AJcA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmAD0AJcAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAJMAmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJcA/wabCP9VyWj/kOqu/5jvuP+U7LP/kuux/5LrsP+S67H/kuux/5Lr sf+S67H/kuux/5Lrsf+S67H/kuux/5Lrsf+S67H/kuux/5Lrsf+S67H/kuux/5Lrsf+S67H/kuux/5Lr sf+S67H/kuux/5Lrsf+S67H/kuuw/5Dqrv+P6q7/keqv/4foqP9z5Jr/c+Sa/3Pkmv9z5Jr/c+Sa/3Pk mv9z5Jr/c+Sa/3Pkmv9z5Jr/c+Sa/3Pkmv9z5Jr/c+Sa/3Pkmv9z5Jr/c+Sa/3Pkmv9z5Jr/c+Sa/3Pk mv9z5Jr/c+Sa/3Pkmv+H6Kj/keqv/4/qrv+Q6q7/kuuw/5Lrsf+S67H/kuux/5Lrsf+S67H/kuux/5Lr sf+S67H/kuux/5Lrsf+S67H/kuux/5Lrsf+S67H/kuux/5Lrsf+S67H/kuux/5Lrsf+S67H/kuux/5Lr sf+S67D/kuux/5Tss/+Y77j/kOqu/1XJaP8Gmwj/AJcA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AlwCSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAfwAIAJgA3wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCXAP8InAr/atWB/5rv u/+T67L/keqw/5HqsP+R6rD/keqw/5HqsP+R6rD/keqw/5HqsP+R6rD/keqw/5HqsP+R6rD/keqw/5Hq sP+R6rD/keqw/5HqsP+R6rD/keqw/5HqsP+R6rD/keqw/5HqsP+R6rD/keqw/5HqsP+R6rD/keqw/5Lq sP+Q6q//e+af/3Tlm/915Zv/deWb/3Xlm/915Zv/deWb/3Xlm/915Zv/deWb/3Xlm/915Zv/deWb/3Xl m/915Zv/deWb/3Xlm/915Zv/deWb/3Xlm/915Zv/deWb/3Xlm/915Zv/dOWb/3vmn/+Q6q//kuqw/5Hq sP+R6rD/keqw/5HqsP+R6rD/keqw/5HqsP+R6rD/keqw/5HqsP+R6rD/keqw/5HqsP+R6rD/keqw/5Hq sP+R6rD/keqw/5HqsP+R6rD/keqw/5HqsP+R6rD/keqw/5HqsP+R6rD/keqw/5HqsP+T67L/mu+7/2rV gf8InAr/AJcA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCYAN8AfwAIAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWADEAmAD8AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJYA/1jLav+d8b7/k+ux/5Lrsf+T67H/lOuy/5Lrsf+R67D/kuuw/5Lr sP+S67D/kuuw/5LrsP+S67D/kuuw/5LrsP+S67D/kuuw/5LrsP+S67D/kuuw/5LrsP+S67D/kuuw/5Lr sP+S67D/kuuw/5LrsP+S67D/kuuw/5LrsP+R67D/i+qs/33nof935p3/eOae/3jmnv945p7/eOae/3jm nv945p7/eOae/3jmnv945p7/eOae/3jmnv945p7/eOae/3jmnv945p7/eOae/3jmnv945p7/eOae/3jm nv945p7/eOae/3jmnv945p7/d+ad/33nof+L6qz/keuw/5LrsP+S67D/kuuw/5LrsP+S67D/kuuw/5Lr sP+S67D/kuuw/5LrsP+S67D/kuuw/5LrsP+S67D/kuuw/5LrsP+S67D/kuuw/5LrsP+S67D/kuuw/5Lr sP+S67D/keuw/5Lrsf+U67L/k+ux/5Lrsf+T67H/nfG+/1jLav8AlgD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJgA/ACWADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAJgAZgCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCWAP8hrCf/lOyz/5ft tf+U7LL/leyz/5Pssf+H6qn/gOik/33nof9+56L/fuei/37nov9+56L/fuei/37nov9+56L/fuei/37n ov9+56L/fuei/37nov9+56L/fuei/37nov9+56L/fuei/37nov9+56L/fuei/37nov9+56L/fuei/3zn oP9655//eeee/3rnn/9655//euef/3rnn/9655//euef/3rnn/9655//euef/3rnn/9655//euef/3rn n/9655//euef/3rnn/9655//euef/3rnn/9655//euef/3rnn/9655//euef/3rnn/9655//eeee/3rn n/9856D/fuei/37nov9+56L/fuei/37nov9+56L/fuei/37nov9+56L/fuei/37nov9+56L/fuei/37n ov9+56L/fuei/37nov9+56L/fuei/37nov9+56L/fuei/37nov9956H/gOik/4fqqf+T7LH/leyz/5Ts sv+X7bX/lOyz/yCrJv8AlgD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgAZgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmACcAJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJYA/1vMbf+g8sD/lu20/5fttf+V7LT/g+mm/3rooP976KH/fOih/3zo of986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zo of986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zo of986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zo of986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zo of986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zoof986KH/fOih/3zo of986KH/fOih/3zoof976KH/euig/4Pppv+V7LT/l+21/5bttP+g8sD/Wsxt/wCWAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAM4AmQD/AJkA/wCZAP8AmQD/AJkA/wCYAP8EmwX/ft+X/53w u/+Y7bX/mu22/4rrrP986KH/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/p o/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/p o/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/p o/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/p o/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/p o/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/f+mj/3/po/9/6aP/fOih/4rr rP+a7bb/mO21/53wu/9+35f/BJsF/wCYAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCYAM4AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkA6wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJgA/wmeC/+P56n/ne+6/5vttv+a7bf/huqo/3/po/+B6aT/gemk/4Hp pP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4Hp pP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4Hp pP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4Hp pP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4Hp pP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4HppP+B6aT/gemk/4Hp pP+B6aT/gemk/4HppP+B6aT/gemk/4HppP9/6aP/huqo/5rtt/+b7bb/ne+6/4/nqf8Jngv/AJgA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmADxAJkA/wCZAP8AmQD/AJkA/wCZAP8AmAD/Cp4L/5Pp rf+g77v/ne64/5vut/+H66n/guqm/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pq p/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pq p/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pq p/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pq p/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pq p/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Pqp/+D6qf/g+qn/4Lq pv+H66n/m+63/53uuP+g77v/k+mt/wqeC/8AmAD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmADxAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZ APAAmQD/AJkA/wCZAP8AmQD/AJkA/wCYAP8Kngv/lOqu/6HwvP+e77n/ne+4/4nsq/+E66f/heuo/4Xr qP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4Xr qP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4Xr qP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4Xr qP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4Xr qP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/heuo/4Xr qP+F66j/heuo/4XrqP+F66j/heuo/4XrqP+F66j/hOun/4nsq/+d77j/nu+5/6HwvP+U6q7/Cp4L/wCY AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkA8ACZAP8AmQD/AJkA/wCZAP8AmQD/AJcA/wqe C/+V6rD/ovG+/5/vu/+e77r/jOyt/4frqf+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jr qv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jr qv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jr qv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jr qv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jr qv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jrqv+I66r/iOuq/4jr qv+H66n/jOyt/57vuv+f77v/ovG+/5XqsP8Kngv/AJcA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA8AAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAmQDwAJkA/wCZAP8AmQD/AJkA/wCZAP8AlwD/Cp4L/5jrsf+l8sD/ovC9/6HwvP+P7a//iuyr/4vs rP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vs rP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vs rP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vs rP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vs rP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vs rP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4vsrP+L7Kz/i+ys/4rsq/+P7a//ofC8/6Lwvf+l8sD/mOux/wqe C/8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAPAAmQD/AJkA/wCZAP8AmQD/AJkA/wCX AP8Kngz/muyz/6fzwf+k8b7/o/G9/5DusP+L7az/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4zt rf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4zt rf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4zt rf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4zt rf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4zt rf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4ztrf+M7a3/jO2t/4zt rf+M7a3/i+2s/5DusP+j8b3/pPG+/6fzwf+a7LP/Cp4M/wCXAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ APAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAJkA8ACZAP8AmQD/AJkA/wCZAP8AmQD/AJcA/wqeDP+c7LT/qfPD/6bxwP+l8b//k+6y/47u sP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/u sP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/u sP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/u sP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/u sP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/u sP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+P7rD/j+6w/4/usP+O7rD/k+6y/6Xxv/+m8cD/qfPD/5zs tP8Kngz/AJcA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQDwAJkA/wCZAP8AmQD/AJkA/wCZ AP8AlwD/Cp4M/57ttP+r9MP/qPLA/6fyv/+V77P/kO6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Hu sf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Hu sf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Hu sf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Hu sf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Hu sf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Husf+R7rH/ke6x/5Hu sf+R7rH/ke6x/5Dusf+V77P/p/K//6jywP+r9MP/nu20/wqeDP8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAACZAPAAmQD/AJkA/wCZAP8AmQD/AJkA/wCXAP8Kngz/n+22/6z0xf+p8sL/qPLB/5fw tP+S77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pv sv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pv sv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pv sv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pv sv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pv sv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/k++y/5Pvsv+T77L/ku+y/5fwtP+o8sH/qfLC/6z0 xf+f7bb/Cp4M/wCXAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkA8ACZAP8AmQD/AJkA/wCZ AP8AmQD/AJcA/wqeDP+h7rf/rvTG/6vyw/+q8sL/mfC2/5XwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bw tP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bw tP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bw tP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bw tP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bw tP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bwtP+W8LT/lvC0/5bw tP+W8LT/lvC0/5bwtP+V8LT/mfC2/6rywv+r8sP/rvTG/6Hut/8Kngz/AJcA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAmQDwAJkA/wCZAP8AmQD/AJkA/wCZAP8AlwD/Cp4M/6Luuf+w9cj/rfPF/6zz xP+b8Lj/l/C2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jw tv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jw tv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jw tv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jw tv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jw tv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5jwtv+Y8Lb/mPC2/5fwtv+b8Lj/rPPE/63z xf+w9cj/ou65/wqeDP8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQDwAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAPAAmQD/AJkA/wCZ AP8AmQD/AJkA/wCXAP8Lnwz/o+66/7H2yf+u9Mb/rfTG/53xuv+Z8bj/mvG4/5rxuP+a8bj/mvG4/5rx uP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rx uP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rx uP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rx uP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rx uP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rxuP+a8bj/mvG4/5rx uP+a8bj/mvG4/5rxuP+a8bj/mfG4/53xuv+t9Mb/rvTG/7H2yf+j7rr/C58M/wCXAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAJkA8ACZAP8AmQD/AJkA/wCZAP8AmQD/AJcA/wufDP+k7rv/svbL/6/0 x/+u9Mf/n/K7/5vyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zy uf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zy uf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zy uf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zy uf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zy uf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+c8rn/nPK5/5zyuf+b8rn/n/K7/670 x/+v9Mf/svbL/6Tuu/8Lnwz/AJcA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA8AAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQDwAJkA/wCZ AP8AmQD/AJkA/wCZAP8AlwD/C58M/6fvvf+1983/svXJ/7H1yf+i873/nvK7/5/yu/+f8rv/n/K7/5/y u/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/y u/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/y u/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/y u/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/y u/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/yu/+f8rv/n/K7/5/y u/+f8rv/n/K7/5/yu/+f8rv/n/K7/57yu/+i873/sfXJ/7L1yf+1983/p++9/wufDP8AlwD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAPAAmQD/AJkA/wCZAP8AmQD/AJkA/wCXAP8Lnwz/qe++/7f3 zv+09cr/s/XK/6Pzv/+f873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dz vf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dz vf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dz vf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dz vf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dz vf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/oPO9/6Dzvf+g873/n/O9/6Pz v/+z9cr/tPXK/7f3zv+p777/C58M/wCXAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAPAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkA8ACZ AP8AmQD/AJkA/wCZAP8AmQD/AJcA/wufDP+r8L//ufjP/7b2y/+09sv/pvTA/6Lzvv+j877/o/O+/6Pz vv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pz vv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pz vv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pz vv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pz vv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+j877/o/O+/6Pz vv+j877/o/O+/6Pzvv+j877/o/O+/6Pzvv+i877/pvTA/7T2y/+29sv/ufjP/6vwv/8Lnwz/AJcA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmADxAJkA/wCZAP8AmQD/AJkA/wCZAP8AlwD/C58M/63w wf+6+NH/uPbN/7f2zf+o9cL/pPTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0 wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0 wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0 wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0 wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0 wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6X0wP+l9MD/pfTA/6T0 wP+o9cL/t/bN/7j2zf+6+NH/rfDB/wufDP8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmADxAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZ AOsAmQD/AJkA/wCZAP8AmQD/AJkA/wCXAP8Lnwz/q/C//7340v+59s7/ufbO/6v1xP+m9MH/p/TC/6f0 wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0 wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0 wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0 wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0 wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0 wv+n9ML/p/TC/6f0wv+n9ML/p/TC/6f0wv+n9ML/pvTB/6v1xP+59s7/ufbO/7340v+r8L//C58M/wCX AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAOsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAzgCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA/wWc Bv+c6a//wPnV/7r3z/+798//sfbJ/6j1wv+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1 w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1 w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1 w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1 w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1 w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1w/+p9cP/qfXD/6n1 w/+o9cL/sfbJ/7v3z/+698//wPnV/5zpr/8FnAb/AJgA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgAzgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAmACcAJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJUA/3PTgP/H/d3/u/fQ/7z40f+799D/r/bH/6r1 w/+r9cT/q/XE/6v1xP+r9cT/q/XE/6v1xP+r9cT/q/XE/6v1xP+r9cT/q/XE/6v1xP+r9cT/q/XE/6v1 xP+r9cT/q/XE/6v1xP+r9cT/q/XE/6v1xP+r9cT/q/XE/6v1xP+r9cT/q/XE/6v2xP+r9sT/q/bE/6v2 xP+r9sT/q/bE/6v2xP+r9sT/q/bE/6v2xP+r9sT/q/bE/6v2xP+r9sT/q/bE/6v2xP+r9sT/q/bE/6v2 xP+r9sT/q/bE/6v2xP+r9sT/q/bE/6v2xP+r9sT/q/bE/6v2xP+r9sT/q/bE/6v1xP+r9cT/q/XE/6v1 xP+r9cT/q/XE/6v1xP+r9cT/q/XE/6v1xP+r9cT/q/XE/6v1xP+r9cT/q/XE/6v1xP+r9cT/q/XE/6v1 xP+r9cT/q/XE/6v1xP+r9cT/q/XE/6v1xP+r9cT/qvXD/6/2x/+799D/vPjR/7v30P/H/d3/c9OA/wCV AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAGYAmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AlQD/Kq8w/7/50//A+tT/vfjR/7740v+9+NH/tffM/7H2yf+w9sj/sPbI/7D2yP+w9sj/sPbI/7D2 yP+w9sj/sPbI/7D2yP+w9sj/sPbI/7D2yP+w9sj/sPbI/7D2yP+w9sj/sPbI/7D2yP+w9sj/sPbI/7D2 yP+w9sj/sPbI/7D2yP+u9sf/rfbG/632xv+t9sb/rfbG/632xv+t9sb/rfbG/632xv+t9sb/rfbG/632 xv+t9sb/rfbG/632xv+t9sb/rfbG/632xv+t9sb/rfbG/632xv+t9sb/rfbG/632xv+t9sb/rfbG/632 xv+t9sb/rfbG/632xv+t9sb/rvbH/7D2yP+w9sj/sPbI/7D2yP+w9sj/sPbI/7D2yP+w9sj/sPbI/7D2 yP+w9sj/sPbI/7D2yP+w9sj/sPbI/7D2yP+w9sj/sPbI/7D2yP+w9sj/sPbI/7D2yP+w9sj/sPbI/7H2 yf+198z/vfjR/7740v+9+NH/wPrU/7/50/8qrzD/AJUA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCY AGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAJYAMQCYAPwAmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AlQD/ctN//8z+4v/A+NP/v/jT/7/4 0//A+NP/v/jT/7/40v+/+NL/v/jS/7/40v+/+NL/v/jS/7/40v+/+NL/v/jS/7/40v+/+NL/v/jS/7/4 0v+/+NL/v/jS/7/40v+/+NL/v/jS/7/40v+/+NL/v/jS/7/40v+/+NL/v/jS/7740v+7+M//svfK/672 x/+v98j/r/fI/6/3yP+v98j/r/fI/6/3yP+v98j/r/fI/6/3yP+v98j/r/fI/6/3yP+v98j/r/fI/6/3 yP+v98j/r/fI/6/3yP+v98j/r/fI/6/3yP+v98j/r/fI/6/3yP+u9sf/svfK/7v4z/+++NL/v/jS/7/4 0v+/+NL/v/jS/7/40v+/+NL/v/jS/7/40v+/+NL/v/jS/7/40v+/+NL/v/jS/7/40v+/+NL/v/jS/7/4 0v+/+NL/v/jS/7/40v+/+NL/v/jS/7/40v+/+NL/v/jT/8D40/+/+NP/v/jT/8D40//M/uL/ctN//wCV AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmAD8AJYAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAIAJgA3wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCXAP8JnQv/jeCd/87/4v/E+tf/wfnU/8H51P/B+dT/wfnU/8H51P/B+dT/wfnU/8H5 1P/B+dT/wfnU/8H51P/B+dT/wfnU/8H51P/B+dT/wfnU/8H51P/B+dT/wfnU/8H51P/B+dT/wfnU/8H5 1P/B+dT/wfnU/8H51P/B+dT/wfnU/8L51f/A+dT/tPjL/7H3yP+x98n/sffJ/7H3yf+x98n/sffJ/7H3 yf+x98n/sffJ/7H3yf+x98n/sffJ/7H3yf+x98n/sffJ/7H3yf+x98n/sffJ/7H3yf+x98n/sffJ/7H3 yf+x98n/sffI/7T4y//A+dT/wvnV/8H51P/B+dT/wfnU/8H51P/B+dT/wfnU/8H51P/B+dT/wfnU/8H5 1P/B+dT/wfnU/8H51P/B+dT/wfnU/8H51P/B+dT/wfnU/8H51P/B+dT/wfnU/8H51P/B+dT/wfnU/8H5 1P/B+dT/wfnU/8H51P/E+tf/zv/i/47hnf8JnQv/AJcA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCY AN8AfwAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAlwCSAJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCWAP8JnQv/ddSC/8P6 1v/P/+P/yfzc/8f72f/G+9n/xvvZ/8b72f/G+9n/xvvZ/8b72f/G+9n/xvvZ/8b72f/G+9n/xvvZ/8b7 2f/G+9n/xvvZ/8b72f/G+9n/xvvZ/8b72f/G+9n/xvvZ/8b72f/G+9n/xvvZ/8b72f/D+dX/wvnV/8P5 1v+++NL/svfK/7P3y/+z98v/s/fL/7P3y/+z98v/s/fL/7P3y/+z98v/s/fL/7P3y/+z98v/s/fL/7P3 y/+z98v/s/fL/7P3y/+z98v/s/fL/7P3y/+z98v/s/fL/7P3y/+y98r/vvjS/8P51v/C+dX/w/nV/8b7 2f/G+9n/xvvZ/8b72f/G+9n/xvvZ/8b72f/G+9n/xvvZ/8b72f/G+9n/xvvZ/8b72f/G+9n/xvvZ/8b7 2f/G+9n/xvvZ/8b72f/G+9n/xvvZ/8b72f/G+9n/xvvZ/8f72f/J/Nz/z//j/8P61v911IL/Cp0L/wCW AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJcAkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXACUAmAD0AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCXAP8AlgD/L7A0/3PSf/+j6rP/s/HF/7n0yv+488n/uPPJ/7jz yf+488n/uPPJ/7jzyf+488n/uPPJ/7jzyf+488n/uPPJ/7jzyf+488n/uPPJ/7jzyf+488n/uPPJ/7jz yf+488n/uPPJ/7jzyf+488n/ufTK/8P51f/E+db/xPnW/8P51f+2+M3/tfjM/7X4zP+1+Mz/tfjM/7X4 zP+1+Mz/tfjM/7X4zP+1+Mz/tfjM/7X4zP+1+Mz/tfjM/7X4zP+1+Mz/tfjM/7X4zP+1+Mz/tfjM/7X4 zP+1+Mz/tfjM/7b4zf/D+dX/xPnW/8T51v/D+dX/ufTK/7jzyf+488n/uPPJ/7jzyf+488n/uPPJ/7jz yf+488n/uPPJ/7jzyf+488n/uPPJ/7jzyf+488n/uPPJ/7jzyf+488n/uPPJ/7jzyf+488n/uPPJ/7jz yf+59Mr/s/HF/6Pqs/9z0n//L7A0/wCWAP8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCY APQAlwAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAHwAmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AlQD/AJUA/wWcBv8Kngz/DJ8N/wyfDf8Mnw3/DJ8N/wyfDf8Mnw3/DJ8N/wyfDf8Mnw3/DJ8N/wyf Df8Mnw3/DJ8N/wyfDf8Mnw3/DJ8N/wyfDf8Mnw3/DJ8N/wyfDf8Mnw3/DJ8N/wydDf8XpBn/uvTL/8j7 2//F+tf/xfrX/7n5zv+3+c3/t/nN/7f5zf+3+c3/t/nN/7f5zf+3+c3/t/nN/7f5zf+3+c3/t/nN/7f5 zf+3+c3/t/nN/7f5zf+3+c3/t/nN/7f5zf+3+c3/t/nN/7f5zf+3+c3/ufnO/8X61//F+tf/yPvb/7r0 y/8XpBn/DJ0N/wyfDf8Mnw3/DJ8N/wyfDf8Mnw3/DJ8N/wyfDf8Mnw3/DJ8N/wyfDf8Mnw3/DJ8N/wyf Df8Mnw3/DJ8N/wyfDf8Mnw3/DJ8N/wyfDf8Mnw3/DJ8N/wyfDf8Kngz/BZwG/wCVAP8AlQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUAAwCZ AL4AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA/wCXAP8AlwD/AJcA/wCX AP8AlwD/AJcA/wCXAP8AlwD/AJcA/wCXAP8AlwD/AJcA/wCXAP8AlwD/AJcA/wCXAP8AlwD/AJcA/wCX AP8AlwD/AJcA/wCXAP8AlwD/AJUA/wmdCf+69Mv/yvzd/8f62f/G+tn/u/nQ/7n5z/+5+c//ufnP/7n5 z/+5+c//ufnP/7n5z/+5+c//ufnP/7n5z/+5+c//ufnP/7n5z/+5+c//ufnP/7n5z/+5+c//ufnP/7n5 z/+5+c//ufnP/7n5z/+7+dD/xvrZ/8f62f/K/N3/uvTL/wmdCf8AlQD/AJcA/wCXAP8AlwD/AJcA/wCX AP8AlwD/AJcA/wCXAP8AlwD/AJcA/wCXAP8AlwD/AJcA/wCXAP8AlwD/AJcA/wCXAP8AlwD/AJcA/wCX AP8AlwD/AJcA/wCXAP8AmAD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AL4AVQADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJYAIgCYAN4AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AlwD/DJ8N/7z1 zf/M/d7/yPva/8j72v+9+tH/u/nQ/7v50P+7+dD/u/nQ/7v50P+7+dD/u/nQ/7v50P+7+dD/u/nQ/7v5 0P+7+dD/u/nQ/7v50P+7+dD/u/nQ/7v50P+7+dD/u/nQ/7v50P+7+dD/u/nQ/7360f/I+9r/yPva/8z9 3v+89c3/DJ8N/wCXAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmADeAJYAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAJkALQCYANsAmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCXAP8Mnw3/vvXO/8793//K+9v/yfvb/7760/+8+dL/vPnS/7z5 0v+8+dL/vPnS/7z50v+8+dL/vPnS/7z50v+8+dL/vPnS/7z50v+8+dL/vPnS/7z50v+8+dL/vPnS/7z5 0v+8+dL/vPnS/7z50v+8+dL/vvrT/8n72//K+9v/zv3f/771zv8Mnw3/AJcA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA2wCZ AC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJcAJQCYAL0AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJcA/wyf Df+/9c//z/3g/8v73P/L+9z/wfrU/7/60/+/+tP/v/rT/7/60/+/+tP/v/rT/7/60/+/+tP/v/rT/7/6 0/+/+tP/v/rT/7/60/+/+tP/v/rT/7/60/+/+tP/v/rT/7/60/+/+tP/v/rT/7/60//B+tT/y/vc/8v7 3P/P/eD/v/XP/wyfDf8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCYAL0AlwAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAH8AAgCXAH4AmQDwAJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AlwD/DJ8N/8H10P/R/eH/zfvd/8373f/C+9X/wPrU/8D6 1P/A+tT/wPrU/8D61P/A+tT/wPrU/8D61P/A+tT/wPrU/8D61P/A+tT/wPrU/8D61P/A+tT/wPrU/8D6 1P/A+tT/wPrU/8D61P/A+tT/wPrU/8L71f/N+93/zfvd/9H94f/B9dD/DJ8N/wCXAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAPAAlwB+AH8AAgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACV ACkAmQCRAJkA1wCYAPgAmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCX AP8Mnw3/wvXQ/9L94f/O+93/zvvd/8T71v/C+9X/wvvV/8L71f/C+9X/wvvV/8L71f/C+9X/wvvV/8L7 1f/C+9X/wvvV/8L71f/C+9X/wvvV/8L71f/C+9X/wvvV/8L71f/C+9X/wvvV/8L71f/C+9X/xPvW/877 3f/O+93/0v3h/8L10P8Mnw3/AJcA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJgA+ACZANcAmQCRAJUAKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAIAJQAKwCXAGMAmACVAJgAygCZ AOYAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZ APAAmQDwAJgA/gCZAP8AmQD/AJkA/wCZAP8AmQD/AJcA/w2fDv/D9tH/1P7i/9D83v/Q/N7/xvvX/8T7 1v/E+9b/xPvW/8T71v/E+9b/xPvW/8T71v/E+9b/xPvW/8T71v/E+9b/xPvW/8T71v/E+9b/xPvW/8T7 1v/E+9b/xPvW/8T71v/E+9b/xPvW/8T71v/G+9f/0Pze/9D83v/U/uL/w/bR/w2fDv8AlwD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmAD+AJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZ APAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAOYAmADKAJgAlQCXAGMAlAArAH8ACAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAEAIkADQCZAA8AmQAPAJkADwCZAA8AmQAPAJkADwCZ AA8AmQAPAJkADwCZAA8AmQAPAJkADwCZAA8AmQAPAJkADwCZAB4AmADxAJkA/wCZAP8AmQD/AJkA/wCZ AP8AlwD/DZ8O/8T20f/V/uT/0fzg/9H84P/H+9n/xfvY/8X72P/F+9j/xfvY/8X72P/F+9j/xfvY/8X7 2P/F+9j/xfvY/8X72P/F+9j/xfvY/8X72P/F+9j/xfvY/8X72P/F+9j/xfvY/8X72P/F+9j/xfvY/8f7 2f/R/OD/0fzg/9X+5P/E9tH/DZ8O/wCXAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCYAPEAmQAeAJkADwCZ AA8AmQAPAJkADwCZAA8AmQAPAJkADwCZAA8AmQAPAJkADwCZAA8AmQAPAJkADwCZAA8AmQAPAIkADQB/ AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAIsACwCZAPAAmQD/AJkA/wCZAP8AmQD/AJkA/wCXAP8Nnw7/xfbT/9b+5f/S/OH/0vzh/8n8 2f/H/Nj/x/zY/8f82P/H/Nj/x/zY/8f82P/H/Nj/x/zY/8f82P/H/Nj/x/zY/8f82P/H/Nj/x/zY/8f8 2P/H/Nj/x/zY/8f82P/H/Nj/x/zY/8f82P/H/Nj/yfzZ/9L84f/S/OH/1v7l/8X20/8Nnw7/AJcA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA8ACLAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQAPAJkA8ACZAP8AmQD/AJkA/wCZ AP8AmQD/AJcA/w2fDv/G9tP/1/7l/9P84f/T/OH/yvzb/8j82v/I/Nr/yPza/8j82v/I/Nr/yPza/8j8 2v/I/Nr/yPza/8j82v/I/Nr/yPza/8j82v/I/Nr/yPza/8j82v/I/Nr/yPza/8j82v/I/Nr/yPza/8j8 2v/K/Nv/0/zh/9P84f/X/uX/xvbT/w2fDv8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQDwAJkADwAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAACZAA8AmQDwAJkA/wCZAP8AmQD/AJkA/wCZAP8AlwD/DZ8O/8f31P/Y/+b/1P3i/9T9 4v/L/Nz/yfzb/8n82//J/Nv/yfzb/8n82//J/Nv/yfzb/8n82//J/Nv/yfzb/8n82//J/Nv/yfzb/8n8 2//J/Nv/yfzb/8n82//J/Nv/yfzb/8n82//J/Nv/yfzb/8v83P/U/eL/1P3i/9j/5v/H99T/DZ8O/wCX AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAPAAmQAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkADwCZAPAAmQD/AJkA/wCZ AP8AmQD/AJkA/wCXAP8Nnw7/yffV/9r/5//W/eP/1v3j/8383f/L/Nz/y/zc/8v83P/L/Nz/y/zc/8v8 3P/L/Nz/y/zc/8v83P/L/Nz/y/zc/8v83P/L/Nz/y/zc/8v83P/L/Nz/y/zc/8v83P/L/Nz/y/zc/8v8 3P/L/Nz/zfzd/9b94//W/eP/2v/n/8n31f8Nnw7/AJcA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA8ACZ AA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAmQAPAJkA8ACZAP8AmQD/AJkA/wCZAP8AmQD/AJcA/w2fDv/K99b/2//o/9f9 5P/X/eT/zvze/8383f/N/N3/zfzd/8383f/N/N3/zfzd/8383f/N/N3/zfzd/8383f/N/N3/zfzd/838 3f/N/N3/zfzd/8383f/N/N3/zfzd/8383f/N/N3/zfzd/8383f/O/N7/1/3k/9f95P/b/+j/yvfW/w2f Dv8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQDwAJkADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAA8AmQDwAJkA/wCZ AP8AmQD/AJkA/wCZAP8AlwD/DZ8O/8v31//c/+n/2P3l/9j95f/P/d//zv3e/8793v/O/d7/zv3e/879 3v/O/d7/zv3e/8793v/O/d7/zv3e/8793v/O/d7/zv3e/8793v/O/d7/zv3e/8793v/O/d7/zv3e/879 3v/O/d7/zv3e/8/93//Y/eX/2P3l/9z/6f/L99f/DZ8O/wCXAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ APAAmQAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAJkADwCZAPAAmQD/AJkA/wCZAP8AmQD/AJkA/wCXAP8Nnw7/zPfX/93/ 6f/Z/eX/2f3l/9H94P/Q/d//0P3f/9D93//Q/d//0P3f/9D93//Q/d//0P3f/9D93//Q/d//0P3f/9D9 3//Q/d//0P3f/9D93//Q/d//0P3f/9D93//Q/d//0P3f/9D93//Q/d//0f3g/9n95f/Z/eX/3f/p/8z3 1/8Nnw7/AJcA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA8ACZAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQAPAJkA8ACZ AP8AmQD/AJkA/wCZAP8AmQD/AJcA/w2fDv/N99j/3v/q/9r95v/a/eb/0v3h/9H94P/R/eD/0f3g/9H9 4P/R/eD/0f3g/9H94P/R/eD/0f3g/9H94P/R/eD/0f3g/9H94P/R/eD/0f3g/9H94P/R/eD/0f3g/9H9 4P/R/eD/0f3g/9H94P/S/eH/2v3m/9r95v/e/+r/zffY/w2fDv8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQDwAJkADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAA8AmQDwAJkA/wCZAP8AmQD/AJkA/wCZAP8AlwD/DZ8O/874 2f/f/+v/2/7n/9v+5//T/eL/0v3h/9L94f/S/eH/0v3h/9L94f/S/eH/0v3h/9L94f/S/eH/0v3h/9L9 4f/S/eH/0v3h/9L94f/S/eH/0v3h/9L94f/S/eH/0v3h/9L94f/S/eH/0v3h/9P94v/b/uf/2/7n/9// 6//O+Nn/DZ8O/wCXAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAPAAmQAPAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkADwCZ APAAmQD/AJkA/wCZAP8AmQD/AJkA/wCXAP8Nnw7/z/jZ/+D/6//c/uf/3P7n/9T94v/T/eH/0/3h/9P9 4f/T/eH/0/3h/9P94f/T/eH/0/3h/9P94f/T/eH/0/3h/9P94f/T/eH/0/3h/9P94f/T/eH/0/3h/9P9 4f/T/eH/0/3h/9P94f/T/eH/1P3i/9z+5//c/uf/4P/r/8/42f8Nnw7/AJcA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA8ACZAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQAPAJkA8ACZAP8AmQD/AJkA/wCZAP8AmQD/AJcA/w2f Dv/Q+Nv/4f/t/93+6f/d/un/1v7k/9X+4//V/uP/1f7j/9X+4//V/uP/1f7j/9X+4//V/uP/1f7j/9X+ 4//V/uP/1f7j/9X+4//V/uP/1f7j/9X+4//V/uP/1f7j/9X+4//V/uP/1f7j/9X+4//W/uT/3f7p/93+ 6f/h/+3/0Pjb/w2fDv8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQDwAJkADwAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZ AA8AmQDwAJkA/wCZAP8AmQD/AJkA/wCZAP8AlwD/DZ8O/9H42//i/+3/3v7p/97+6f/X/uX/1v7k/9b+ 5P/W/uT/1v7k/9b+5P/W/uT/1v7k/9b+5P/W/uT/1v7k/9b+5P/W/uT/1v7k/9b+5P/W/uT/1v7k/9b+ 5P/W/uT/1v7k/9b+5P/W/uT/1v7k/9f+5f/e/un/3v7p/+L/7f/R+Nv/DZ8O/wCXAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAPAAmQAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJkADwCZAPAAmQD/AJkA/wCZAP8AmQD/AJkA/wCX AP8Onw7/0fjc/+P/7v/f/ur/3/7q/9j+5f/X/uT/1/7k/9f+5P/X/uT/1/7k/9f+5P/X/uT/1/7k/9f+ 5P/X/uT/1/7k/9f+5P/X/uT/1/7k/9f+5P/X/uT/1/7k/9f+5P/X/uT/1/7k/9f+5P/X/uT/2P7l/9/+ 6v/f/ur/4//u/9H43P8Onw7/AJcA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA8ACZAA8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAmQAPAJkA8ACZAP8AmQD/AJkA/wCZAP8AmQD/AJcA/w6fDv/S+Nz/5P/u/+D+6v/g/ur/2f7m/9j+ 5f/Y/uX/2P7l/9j+5f/Y/uX/2P7l/9j+5f/Y/uX/2P7l/9j+5f/Y/uX/2P7l/9j+5f/Y/uX/2P7l/9j+ 5f/Y/uX/2P7l/9j+5f/Y/uX/2P7l/9j+5f/Z/ub/4P7q/+D+6v/k/+7/0vjc/w6fDv8AlwD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQDwAJkADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZAA8AmADxAJkA/wCZAP8AmQD/AJkA/wCZ AP8AlwD/Dp8O/9P43f/l/+//4f7r/+H+6//a/uf/2f7m/9n+5v/Z/ub/2f7m/9n+5v/Z/ub/2f7m/9n+ 5v/Z/ub/2f7m/9n+5v/Z/ub/2f7m/9n+5v/Z/ub/2f7m/9n+5v/Z/ub/2f7m/9n+5v/Z/ub/2f7m/9r+ 5//h/uv/4f7r/+X/7//T+N3/Dp8O/wCXAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCYAPEAmQAPAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAJEADgCZAOsAmQD/AJkA/wCZAP8AmQD/AJkA/wCXAP8Nnw7/0fjc/+b/8P/h/+z/4f/s/9z+ 5//b/ub/2/7m/9v+5v/b/ub/2/7m/9v+5v/b/ub/2/7m/9v+5v/b/ub/2/7m/9v+5v/b/ub/2/7m/9v+ 5v/b/ub/2/7m/9v+5v/b/ub/2/7m/9v+5v/b/ub/3P7n/+H/7P/h/+z/5v/w/9H43P8Nnw7/AJcA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA6wCRAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmQAFAJgAzgCZAP8AmQD/AJkA/wCZ AP8AmQD/AJcA/wedCP/B88z/6v/z/+P/7P/j/+z/3//q/9v+5//c/uj/3P7o/9z+6P/c/uj/3P7o/9z+ 6P/c/uj/3P7o/9z+6P/c/uj/3P7o/9z+6P/c/uj/3P7o/9z+6P/c/uj/3P7o/9z+6P/c/uj/3P7o/9v+ 5//f/+r/4//s/+P/7P/q//P/wfPM/wedCP8AlwD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmADOAJkABQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAmACcAJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJYA/43alf/x//v/4//s/+P/ 7f/j/+z/3v7p/9z+6P/c/uj/3P7o/9z+6P/c/uj/3P7o/9z+6P/c/uj/3P7o/9z+6P/c/uj/3P7o/9z+ 6P/c/uj/3P7o/9z+6P/c/uj/3P7o/9z+6P/c/uj/3v7p/+P/7P/j/+3/4//s//H/+/+N2pX/AJYA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCYAJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAGYAmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AlAD/NbM5/+b/8P/n//D/5P/t/+T/7f/j/+z/4P/r/9//6v/e/+n/3v/p/97/ 6f/e/+n/3v/p/97/6f/e/+n/3v/p/97/6f/e/+n/3v/p/97/6f/e/+n/3v/p/97/6f/e/+n/3//q/+D/ 6//j/+z/5P/t/+T/7f/n//D/5v/w/zWzOf8AlAD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgAZgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAJYAMQCYAPwAmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AlgD/itqT//T/ /v/l/+7/5P/t/+X/7v/l/+7/5P/u/+T/7f/k/+3/5P/t/+T/7f/k/+3/5P/t/+T/7f/k/+3/5P/t/+T/ 7f/k/+3/5P/t/+T/7f/k/+3/5P/t/+T/7f/k/+7/5f/u/+X/7v/k/+3/5f/u//T//v+K2pP/AJYA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCYAPwAlgAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAIAJgA3wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCWAP8LnQ3/quez//X//v/o//H/5f/u/+X/7v/l/+7/5f/u/+X/ 7v/l/+7/5f/u/+X/7v/l/+7/5f/u/+X/7v/l/+7/5f/u/+X/7v/l/+7/5f/u/+X/7v/l/+7/5f/u/+X/ 7v/l/+7/5f/u/+j/8f/1//7/quez/wudDf8AlgD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA3wB/ AAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlwCSAJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCW AP8Mng7/j9qW/+j/8f/1//3/7f/1/+v/8//q//L/6v/y/+r/8v/q//L/6v/y/+r/8v/q//L/6v/y/+r/ 8v/q//L/6v/y/+r/8v/q//L/6v/y/+r/8v/q//L/6//z/+3/9f/1//3/6P/x/4/alv8Mng7/AJYA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AlwCSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACX ACUAmAD0AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCXAP8AlgD/ObM9/4jXj//C8sv/0/jc/9n5 4f/Z+eD/2fng/9n54P/Z+eD/2fng/9n54P/Z+eD/2fng/9n54P/Z+eD/2fng/9n54P/Z+eD/2fng/9n5 4f/T+Nz/wvLL/4jXj/85sz3/AJYA/wCXAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJgA9ACX ACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAHwAmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCYAP8AlAD/AJUA/wedCP8Mnw3/Dp8P/w6fD/8Onw//Dp8P/w6fD/8Onw//Dp8P/w6f D/8Onw//Dp8P/w6fD/8Onw//Dp8P/w6fD/8Onw//Dp8P/wyfDf8HnQj/AJUA/wCUAP8AmAD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAFUAAwCZAL4AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJcA/wCX AP8AlwD/AJcA/wCXAP8AlwD/AJcA/wCXAP8AlwD/AJcA/wCXAP8AlwD/AJcA/wCXAP8AlwD/AJcA/wCX AP8AlwD/AJcA/wCXAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkAvgBV AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJYAIgCYAN4AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCYAN4AlgAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAJkALQCYANsAmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmADbAJkALQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJcAJQCY AL0AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJgAvQCXACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH8AAgCXAH4AmQDwAJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA8ACXAH4AfwACAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAACVACkAmQCRAJkA1wCYAPgAmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZAP8AmQD/AJkA/wCZ AP8AmAD4AJkA1wCZAJEAlQApAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfwAIAJQAKwCX AGMAmACVAJgAygCZAOYAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZAPAAmQDwAJkA8ACZ APAAmQDwAJkA8ACZAPAAmQDwAJkA5gCYAMoAmACVAJcAYwCUACsAfwAIAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////AAAAD////////////////AAAAAP////////// /////AAAAAA///////////////gAAAAAH//////////////wAAAAAA//////////////4AAAAAAH//// /////////8AAAAAAA//////////////AAAAAAAP/////////////gAAAAAAB/////////////4AAAAAA Af////////////8AAAAAAAD/////////////AAAAAAAA/////////////wAAAAAAAP////////////8A AAAAAAD////////////+AAAAAAAAf////////////gAAAAAAAH////////////4AAAAAAAB///////// ///+AAAAAAAAf////////////gAAAAAAAH////////////4AAAAAAAB////////////+AAAAAAAAf/// /////////gAAAAAAAH////////////4AAAAAAAB////////////+AAAAAAAAf////////////gAAAAAA AH////////////4AAAAAAAB////////////+AAAAAAAAf////////////gAAAAAAAH////////////4A AAAAAAB////////////+AAAAAAAAf////////////gAAAAAAAH/////////8AAAAAAAAAAAAAD////// wAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAA////4AAAAAAAAAAAAAAAA H///8AAAAAAAAAAAAAAAAA///+AAAAAAAAAAAAAAAAAH///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAA AAAAAAP//4AAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf//AAAAAAAAAAAAAAAAAAD//wAAAAAA AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8A AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA AP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAA AAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAA AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8A AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA AP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAA AAAAAAD//4AAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//8AAAAAA AAAAAAAAAAAD///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////gAAAAAAAAAAAAAAAAf///8 AAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAP/////AAAAAAAAAAAAAAAP//////AAAAAAAAAAAAAA/ /////////gAAAAAAAH////////////4AAAAAAAB////////////+AAAAAAAAf////////////gAAAAAA AH////////////4AAAAAAAB////////////+AAAAAAAAf////////////gAAAAAAAH////////////4A AAAAAAB////////////+AAAAAAAAf////////////gAAAAAAAH////////////4AAAAAAAB///////// ///+AAAAAAAAf////////////gAAAAAAAH////////////4AAAAAAAB////////////+AAAAAAAAf/// /////////gAAAAAAAH////////////4AAAAAAAB/////////////AAAAAAAA/////////////wAAAAAA AP////////////8AAAAAAAD/////////////AAAAAAAA/////////////4AAAAAAAf////////////+A AAAAAAH/////////////wAAAAAAD/////////////8AAAAAAA//////////////gAAAAAAf///////// ////8AAAAAAP//////////////gAAAAAH//////////////8AAAAAD///////////////wAAAAD///// ///////////AAAAD//////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////8= ================================================ FILE: FreeHttpControl/EditParameterPickWindow.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class EditParameterPickWindow { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditParameterPickWindow)); this.lb_info = new System.Windows.Forms.Label(); this.bt_ok = new System.Windows.Forms.Button(); this.pb_add = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.pb_add)).BeginInit(); this.SuspendLayout(); // // lb_info // this.lb_info.AutoSize = true; this.lb_info.ForeColor = System.Drawing.SystemColors.HotTrack; this.lb_info.Location = new System.Drawing.Point(16, 12); this.lb_info.Name = "lb_info"; this.lb_info.Size = new System.Drawing.Size(479, 12); this.lb_info.TabIndex = 1; this.lb_info.Text = "Parameter Name PickType PickAdditional PickRange Pick Expression"; // // bt_ok // this.bt_ok.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.bt_ok.Location = new System.Drawing.Point(711, 31); this.bt_ok.Name = "bt_ok"; this.bt_ok.Size = new System.Drawing.Size(75, 23); this.bt_ok.TabIndex = 11; this.bt_ok.Text = "confirm"; this.bt_ok.UseVisualStyleBackColor = true; this.bt_ok.Click += new System.EventHandler(this.bt_ok_Click); // // pb_add // this.pb_add.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_add.BackColor = System.Drawing.Color.Transparent; this.pb_add.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_add.Image = ((System.Drawing.Image)(resources.GetObject("pb_add.Image"))); this.pb_add.Location = new System.Drawing.Point(762, 2); this.pb_add.Name = "pb_add"; this.pb_add.Size = new System.Drawing.Size(23, 23); this.pb_add.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_add.TabIndex = 58; this.pb_add.TabStop = false; this.pb_add.Visible = false; this.pb_add.Click += new System.EventHandler(this.pb_add_Click); // // EditParameterPickWindow // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(792, 59); this.Controls.Add(this.pb_add); this.Controls.Add(this.bt_ok); this.Controls.Add(this.lb_info); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "EditParameterPickWindow"; this.Text = "EditParameterPickWindow"; this.Load += new System.EventHandler(this.EditParameterPickWindow_Load); ((System.ComponentModel.ISupportInitialize)(this.pb_add)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label lb_info; private System.Windows.Forms.Button bt_ok; private System.Windows.Forms.PictureBox pb_add; } } ================================================ FILE: FreeHttpControl/EditParameterPickWindow.cs ================================================ using FreeHttp.AutoTest.ParameterizationPick; using FreeHttp.FreeHttpControl.MyControl; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class EditParameterPickWindow : Form { public EditParameterPickWindow() { InitializeComponent(); } private Action> SetParameterPickAction; private readonly Point startLocation = new Point(8, 28); private readonly int parameterPickBoxHeight = 26; private readonly int startWindowHeight = 87; private List addParameterPickBoxList = new List(); public EditParameterPickWindow(List parameterPicklist, Action> setParameterPickAction) { InitializeComponent(); if(parameterPicklist!=null && parameterPicklist.Count>0) { foreach(var parameterPick in parameterPicklist) { AddParameterPickBox(parameterPick); } } else { AddParameterPickBox(null); } SetParameterPickAction = setParameterPickAction; } private void EditParameterPickWindow_Load(object sender, EventArgs e) { } private void AddParameterPickBox(ParameterPick yourParameterPick) { AddParameterPickBox tempAddParameterPickBox; if(yourParameterPick==null) { tempAddParameterPickBox = new AddParameterPickBox(); } else { tempAddParameterPickBox = new AddParameterPickBox(yourParameterPick); tempAddParameterPickBox.Tag = yourParameterPick; } tempAddParameterPickBox.OnAddParameterClick += AddParameterPickBox_OnAddParameterClick; AddAddParameterPickBox(tempAddParameterPickBox); } [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)] private void AddAddParameterPickBox(AddParameterPickBox yourAddParameterPickBox) { if(addParameterPickBoxList.Contains(yourAddParameterPickBox)) { return; } int nowParameterPickBoxCount = addParameterPickBoxList.Count; yourAddParameterPickBox.Location = new Point(startLocation.X, startLocation.Y + nowParameterPickBoxCount * parameterPickBoxHeight); this.Controls.Add(yourAddParameterPickBox); yourAddParameterPickBox.GetFocus(); this.Height += parameterPickBoxHeight; addParameterPickBoxList.Add(yourAddParameterPickBox); } [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)] private void ResizeParameterPickBoxList() { if(addParameterPickBoxList!=null) { for(int i=0;i setParameterPickList = new List(); foreach (var tempItem in addParameterPickBoxList) { if(tempItem.Tag!=null&& tempItem.Tag is ParameterPick) { setParameterPickList.Add((ParameterPick)tempItem.Tag); } else { try { ParameterPick tempParameterPick = tempItem.GetParameterPickInfo(); tempItem.Tag = tempParameterPick; setParameterPickList.Add(tempParameterPick); } catch (Exception ex) { MessageBox.Show(string.Format("this parameter add infomation is illegal :{0}", ex.Message)); return; } } } if(SetParameterPickAction!=null) { SetParameterPickAction(setParameterPickList); } this.Close(); } } } ================================================ FILE: FreeHttpControl/EditParameterPickWindow.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 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 hwrm46MyvTV1G8nrowEAYHToh8ia8sMy/fmCA0R8n5A/lm+TU+0yAwAA9Bf9kJkhD5AXyqdk2Q8lbI7p nQ2nyTfLKXYZAQAA6kU/hJaWW8nj5U2S30IMznnyUnmoXF/yXAQAAGgu+kG1rNxWfk6mh/o8Lct+wOHo nSsvkOlwsImcZOMHAACIi36gTZQvk+mVxqfK30kOEiP7kEw3oH5G7iDTw7jG2FgBAADagX74jZPpDZxb y/Sv5TPljTLdvV/2AzQ3F8p75VXyZJmej7GpfLG0KQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADSFF73o/wHdNWkEK4HhBwAAAABJRU5ErkJggg== AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAMQOAADEDgAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25YS/9uW Ev/blhL/25YS/9uWEv/blhL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA2pYRmduWEv/blhL/25YS/9uWEv/blhL/3JYSZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANuWEv/blhL/25YS/9uWEv/blhL/25YS/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblQ9G25YS/9uW Ev/blhL/25YS/9uWEv/blRK5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA25YS/9uWEv/blhL/25YS/9uWEv/blhL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANuWEv/blhL/25YS/9uWEv/blhL/25YS/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANqWEZnblhL/25YS/9uWEv/blhL/25YS/9yW EmYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAD/gAAE25YS/9uWEv/blhL/25YS/9uWEv/alRH7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA25YS/9uWEv/blhL/25YS/9uWEv/blhL/AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuWEv/blhL/25YS/9uWEv/blhL/25YS/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuUEivblhL/25YS/9uW Ev/blhL/25YS/9uVEdQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA25YS/9uWEv/blhL/25YS/9uWEv/blhL/AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AABNuWEv/blhL/25YS/9uWEv/blhL/2pUR+wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuWEv/blhL/25YS/9uW Ev/blhL/25YS/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADalRH725YS/9uWEv/blhL/25YS/9uWEv//gAAEAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25YS/9uWEv/blhL/25YS/9uWEv/blhL/AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuWEv/blhL/25YS/9uW Ev/blhL/25YS/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuV EdTblhL/25YS/9uWEv/blhL/25YS/9uUEisAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25YS/9uWEv/blhL/25YS/9uWEv/blhL/AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2pUR+9uWEv/blhL/25YS/9uW Ev/blhL//4AABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuW Ev/blhL/25YS/9uWEv/blhL/25YS/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25YS/9uWEv/blhL/25YS/9uW Ev/blhL/AAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP///////wAA//////// AADgAD/8AAcAAOAAP/wABwAA4AA//AAHAADj/////8cAAOP/////xwAA4//////HAADj8D///8cAAOP4 H///xwAA4/wf///HAADj/A///8cAAOP+B///xwAA4/8H///HAADj/wP//8cAAOP/gf//xwAA4//B///H AADj/8D//8cAAOP/4P//xwAA4//gf//HAADj//A//8cAAOP/+D//xwAA4//4H//HAADj//wP/8cAAOP/ /g//xwAA4//+B//HAADj//8D/8cAAOP//4P/xwAA4///gf/HAADj///A/8cAAOP//+D/xwAA4///4H/H AADj///wP8cAAOP///g/xwAA4///+B/HAADj///8D8cAAOP///wPxwAA4////gfHAADj/////8cAAOP/ ////xwAA4//////HAADgAD/8AAcAAOAAP/wABwAA4AA//AAHAAD///////8AAP///////wAA//////// AAA= ================================================ FILE: FreeHttpControl/EditSheetForm.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class EditSheetForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditSheetForm)); this.dataGridView = new System.Windows.Forms.DataGridView(); this.pb_saveSheet = new System.Windows.Forms.PictureBox(); this.pb_export = new System.Windows.Forms.PictureBox(); this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); this.toolTip = new System.Windows.Forms.ToolTip(this.components); ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_saveSheet)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_export)).BeginInit(); this.SuspendLayout(); // // dataGridView // this.dataGridView.BackgroundColor = System.Drawing.Color.AliceBlue; this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView.Dock = System.Windows.Forms.DockStyle.Fill; this.dataGridView.GridColor = System.Drawing.Color.AliceBlue; this.dataGridView.Location = new System.Drawing.Point(0, 0); this.dataGridView.Name = "dataGridView"; this.dataGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToDisplayedHeaders; this.dataGridView.RowTemplate.Height = 23; this.dataGridView.Size = new System.Drawing.Size(871, 410); this.dataGridView.TabIndex = 0; this.dataGridView.RowsAdded += new System.Windows.Forms.DataGridViewRowsAddedEventHandler(this.dataGridView_RowsAdded); this.dataGridView.RowsRemoved += new System.Windows.Forms.DataGridViewRowsRemovedEventHandler(this.dataGridView_RowsRemoved); // // pb_saveSheet // this.pb_saveSheet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_saveSheet.BackColor = System.Drawing.Color.Transparent; this.pb_saveSheet.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_saveSheet.Image = ((System.Drawing.Image)(resources.GetObject("pb_saveSheet.Image"))); this.pb_saveSheet.Location = new System.Drawing.Point(830, 0); this.pb_saveSheet.Name = "pb_saveSheet"; this.pb_saveSheet.Size = new System.Drawing.Size(20, 20); this.pb_saveSheet.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_saveSheet.TabIndex = 43; this.pb_saveSheet.TabStop = false; this.toolTip.SetToolTip(this.pb_saveSheet, "save data"); this.pb_saveSheet.Click += new System.EventHandler(this.pb_saveSheet_Click); this.pb_saveSheet.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pb_saveSheet.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // pb_export // this.pb_export.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_export.BackColor = System.Drawing.Color.Transparent; this.pb_export.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_export.Image = ((System.Drawing.Image)(resources.GetObject("pb_export.Image"))); this.pb_export.Location = new System.Drawing.Point(851, 0); this.pb_export.Name = "pb_export"; this.pb_export.Size = new System.Drawing.Size(20, 20); this.pb_export.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_export.TabIndex = 44; this.pb_export.TabStop = false; this.toolTip.SetToolTip(this.pb_export, "export data"); this.pb_export.Click += new System.EventHandler(this.pb_export_Click); this.pb_export.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pb_export.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // saveFileDialog // this.saveFileDialog.Filter = "csv files (*.csv)|*.csv"; // // EditSheetForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(871, 410); this.Controls.Add(this.pb_export); this.Controls.Add(this.pb_saveSheet); this.Controls.Add(this.dataGridView); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MinimizeBox = false; this.Name = "EditSheetForm"; this.Text = "EditSheetForm"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.EditSheetForm_FormClosing); this.Load += new System.EventHandler(this.EditSheetForm_Load); ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_saveSheet)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_export)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.DataGridView dataGridView; private System.Windows.Forms.PictureBox pb_saveSheet; private System.Windows.Forms.PictureBox pb_export; private System.Windows.Forms.SaveFileDialog saveFileDialog; private System.Windows.Forms.ToolTip toolTip; } } ================================================ FILE: FreeHttpControl/EditSheetForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using FreeHttp.AutoTest; namespace FreeHttp.FreeHttpControl { public partial class EditSheetForm : Form { public class SaveSheetDataEventArgs : EventArgs { public List> SheetData { get; set; } public Point? SelectCell { get; set; } public SaveSheetDataEventArgs(List> sheetData, Point? selectCell) { SheetData = sheetData; SelectCell = selectCell; } } public EditSheetForm() { InitializeComponent(); } public event EventHandler SaveSheetData; private List> listViewSource; private DataTable sourceDataTable; private Point selectCell; public EditSheetForm(string name, List> dataSource, Point yourSelectCell) : this() { this.Text = string.IsNullOrEmpty(name) ? "" : name; if (dataSource != null) { listViewSource = dataSource; selectCell = yourSelectCell; } } private void EditSheetForm_Load(object sender, EventArgs e) { dataGridView.DataSource = FillData(listViewSource); for(int i =0 ; i > tempViewSource; tempViewSource = GetData(); this.SaveSheetData(this, new SaveSheetDataEventArgs(tempViewSource, dataGridView.CurrentCell == null ? (Point?)null : new Point?(new Point(dataGridView.CurrentCell.ColumnIndex, dataGridView.CurrentCell.RowIndex)))); } } private void EditSheetForm_FormClosing(object sender, FormClosingEventArgs e) { pb_saveSheet_Click(this, null); } private void pb_export_Click(object sender, EventArgs e) { //saveFileDialog if (saveFileDialog.ShowDialog() == DialogResult.OK) { List> tempViewSource = GetData(); try { FreeHttp.AutoTest.MyCommonHelper.FileHelper.CsvFileHelper.SaveCsvFile(saveFileDialog.FileName, tempViewSource); } catch(Exception ex) { MessageBox.Show(ex.Message, "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); } } } private DataTable FillData(List> sourceData) { sourceDataTable = new DataTable(); int columnCount = 0; if (sourceData != null) { sourceDataTable.BeginLoadData(); foreach (List tempRowItem in sourceData) { if (tempRowItem != null && tempRowItem.Count > 0) { if (tempRowItem.Count > columnCount) { for (int i = columnCount; i < tempRowItem.Count; i++) { sourceDataTable.Columns.Add((i).ToString(), typeof(string)); } columnCount = tempRowItem.Count; } sourceDataTable.Rows.Add(tempRowItem.ToArray()); } else { sourceDataTable.Rows.Add(sourceDataTable.NewRow()); } } sourceDataTable.EndLoadData(); } return sourceDataTable; } private List> GetData() { List> outData = new List>(); if (sourceDataTable != null) { if (dataGridView.IsCurrentCellDirty) { dataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit); dataGridView.BindingContext[dataGridView.DataSource].EndCurrentEdit(); } dataGridView.EndEdit(); foreach (DataRow tempRow in sourceDataTable.Rows) { outData.Add(tempRow.ItemArray); } } return outData; } private bool IsDataSourceEqual(List> yourDataSource) { if (listViewSource == yourDataSource) return true; if(listViewSource == null || yourDataSource==null) return false; if(listViewSource.Count!= yourDataSource.Count) return false; for(int i =0;i< listViewSource.Count;i++) { if (listViewSource[i].Count != yourDataSource[i].Count) return false; for(int j =0;j< listViewSource[i].Count;j++) { if(listViewSource[i][j]!= yourDataSource[i][j]) { return false; } } } return true; } } } ================================================ FILE: FreeHttpControl/EditSheetForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 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 kmX/BecqfRkxOnTlAAAAAElFTkSuQmCC 153, 17 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 17, 17 AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wBLexAiS3sQmUt7EO5LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP// /wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fu5lpxaZZacWIv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AS3sQM0t7EO5LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxbuZacWM////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7 ECJLexDuS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP// /wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxbuZacWIv///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AS3sQmUt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxaZ////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wBLexDuS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP// /wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFu7///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW//// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP// /wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AEt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP// /wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP////8A////AP// /wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP// /wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP///wD///8A////AGWn Frtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ//// /wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP// /wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/SHUP/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP// /wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/SHUP/0t7 EP9LexD/SHUP/0t7EP9IdQ//S3sQ/0t7EP9IdQ//S3sQ/0t7EP9IdQ//S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/SHUP/0t7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0t7 EP9IdQ//S3sQ/0t7EP9LexD/S3sQ/0h1D/9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP// /wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0h1D/9LexD/SHUP/0t7 EP9LexD/SHUP/0t7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0t7EP9IdQ//S3sQ/0h1D/9LexD/S3sQ/0h1 D/9LexD/S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW//// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8AS3sQ/0h1D/9LexD/S3sQ/0t7EP9LexD/SHUP/0t7EP9IdQ//SHUP/0t7EP9IdQ//S3sQ/0h1 D/9LexD/SHUP/0t7EP9LexD/S3sQ/0h1D/9LexD/S3sQ/0h1D/9LexD/////AP///wD///8A////AP// /wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0h1D/9LexD/S3sQ/0h1 D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9IdQ//S3sQ/0h1D/9LexD/S3sQ/0h1 D/9LexD/S3sQ/0h1D/////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AEt7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0h1D/9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//S3sQ/0h1D/9LexD/S3sQ/0h1D/9LexD/S3sQ/////wD///8A////AP// /wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0h1D/9LexD/SHUP/0t7 EP9IdQ//SHUP/0t7EP9IdQ//S3sQ/0h1D/9LexD/SHUP/0t7EP9IdQ//S3sQ/0h1D/9IdQ//S3sQ/0h1 D/9LexD/S3sQ/0h1D/9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wBLexD/S3sQ/0h1D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//S3sQ/0t7EP////8A////AP// /wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9IdQ//S3sQ/0h1 D/9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//S3sQ/0h1 D/9IdQ//SHUP/0t7EP9LexD/SHUP/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8AS3sQ/0t7EP9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//SHUP/0t7EP9LexD/////AP// /wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/SHUP/0t7 EP9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0t7EP9IdQ//S3sQ/0h1D/////8A////AP///wD///8A////AP///wD///8A////AGWn Frtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AEh1D/9LexD/SHUP/0t7EP9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//S3sQ//// /wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0h1 D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0t7EP9IdQ//SHUP/0h1D/9LexD/////AP///wD///8A////AP///wD///8A////AP// /wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wBIdQ//S3sQ/0h1D/9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//S3sQ/0h1 D/////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7 EP9IdQ//S3sQ/0h1D/9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//S3sQ/////wD///8A////AP///wD///8A////AP// /wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8ASHUP/0t7EP9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//SHUP/0t7 EP9IdQ//////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wBLexD/SHUP/0h1D/9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//SHUP/0t7EP////8A////AP///wD///8A////AP// /wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1 D/9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7 EP9IdQ//S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW//// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8AS3sQ/0h1D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//SHUP/0t7EP9LexD/////AP///wD///8A////AP// /wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0h1D/9LexD/SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9LexD/SHUP/0h1 D/9LexD/SHUP/0t7EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AEt7EP9LexD/S3sQ/0h1D/9IdQ//SHUP/0t7EP9IdQ//SHUP/0t7EP9IdQ//SHUP/0h1 D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9LexD/SHUP/0t7EP9IdQ//S3sQ/////wD///8A////AP// /wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0h1D/9LexD/S3sQ/0h1 D/9IdQ//SHUP/0h1D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9IdQ//SHUP/0h1D/9LexD/SHUP/0h1 D/9LexD/SHUP/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wBLexD/S3sQ/0h1D/9LexD/SHUP/0t7EP9IdQ//SHUP/0h1D/9LexD/SHUP/0h1 D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9IdQ//S3sQ/0h1D/9LexD/S3sQ/0h1D/////8A////AP// /wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0h1D/9LexD/SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//S3sQ/0h1D/9LexD/SHUP/0t7 EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8AS3sQ/0h1D/9LexD/S3sQ/0t7EP9IdQ//S3sQ/0h1D/9LexD/SHUP/0t7 EP9IdQ//SHUP/0t7EP9IdQ//S3sQ/0h1D/9LexD/SHUP/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP// /wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7 EP9IdQ//S3sQ/0t7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0h1D/9LexD/SHUP/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0t7EP////8A////AP///wD///8A////AP///wD///8A////AGWn Frtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0t7EP9IdQ//S3sQ/0t7 EP9LexD/S3sQ/0h1D/9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0t7EP9LexD/S3sQ//// /wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/SHUP/0t7EP9LexD/SHUP/0t7EP9LexD/S3sQ/0h1D/9LexD/SHUP/0t7 EP9IdQ//S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP// /wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0h1D/9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP// /wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP// /wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW//// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP// /wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AEt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP// /wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP////8A////AP// /wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP// /wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP///wD///8A////AGWn Frtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ//// /wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP// /wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP// /wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8AGioGuxoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAaKga7GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////ABoqBrsaKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AGioGuxoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wAaKga7GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv////8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ABoq BrsaKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/////wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AGioGuxoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wAaKga7GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv////8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////ABoqBrsaKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG//// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8AGioGuxoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wAaKga7GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////ABoqBpkaKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG7v///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AGioGRBoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgaZ////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8AGioGuxoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG7hoqBiL///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAaKgYRGioGzBoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bu4aKgYz////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AGioGiBoqBt0aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBu4aKgaZGioGIv///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A//////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////AAAD/AAAAAAAAAAP///// gAAA/wAAAAAAAAAB/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA /////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAA AAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/ AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD///// AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA /////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAA AAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/ AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD///// AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA /////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAA AAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/ AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD///// AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA /////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAA AAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/ AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD///// AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD///////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////8AAAAA AAAAAAAAAAD/////AAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAD///// AAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAA /////wAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAA/////wAAAAAAAAAA AAAAAP////8AAAAAAAAAAAAAAAD/////gAAAAAAAAAAAAAAA/////4AAAAAAAAAAAAAAAf/////gAAAA AAAAAAAAAAP///////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////8= ================================================ FILE: FreeHttpControl/FreeHttpWindow.Designer.cs ================================================ using FreeHttp; namespace FreeHttp.FreeHttpControl { partial class FreeHttpWindow { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region 组件设计器生成的代码 /// /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FreeHttpWindow)); this.imageList_forTab = new System.Windows.Forms.ImageList(this.components); this.contextMenuStrip_AddFile = new System.Windows.Forms.ContextMenuStrip(this.components); this.addFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.addParameterDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.keyValueToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.parameterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.dataSouceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.editDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator_addAndCheck = new System.Windows.Forms.ToolStripSeparator(); this.antoContentLengthToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.openFileDialog_addFIle = new System.Windows.Forms.OpenFileDialog(); this.splitContainer_main = new System.Windows.Forms.SplitContainer(); this.splitContainer_httpEditInfo = new System.Windows.Forms.SplitContainer(); this.rtb_MesInfo = new System.Windows.Forms.RichTextBox(); this.groupBox_urlFilter = new System.Windows.Forms.GroupBox(); this.pictureBox_editHttpFilter = new System.Windows.Forms.PictureBox(); this.tb_urlFilter = new System.Windows.Forms.TextBox(); this.lb_editRuleMode = new System.Windows.Forms.Label(); this.pictureBox_editRuleMode = new System.Windows.Forms.PictureBox(); this.pb_getSession = new System.Windows.Forms.PictureBox(); this.cb_macthMode = new System.Windows.Forms.ComboBox(); this.splitContainer_httpControl = new System.Windows.Forms.SplitContainer(); this.pb_remoteRule = new System.Windows.Forms.PictureBox(); this.pb_addRequestRule = new System.Windows.Forms.PictureBox(); this.pb_removeRequestRule = new System.Windows.Forms.PictureBox(); this.pb_requestRuleSwitch = new System.Windows.Forms.PictureBox(); this.contextMenu_ruleList = new System.Windows.Forms.ContextMenuStrip(this.components); this.removeSelectedRuleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.removeAllRuleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.copySelectedRuleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.enableThisRuleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.enableAllRuleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.unableAllRuleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.editThisRuleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.groupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.addToNewGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.moveToGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.renameThisGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.deleteThisGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.enableThisGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.unableThisGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.pb_addResponseRule = new System.Windows.Forms.PictureBox(); this.pb_removeResponseRule = new System.Windows.Forms.PictureBox(); this.pb_responseRuleSwitch = new System.Windows.Forms.PictureBox(); this.toolTip_forMainWindow = new System.Windows.Forms.ToolTip(this.components); this.contextMenuStrip_addParameter = new System.Windows.Forms.ContextMenuStrip(this.components); this.currentValueToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.nextValueToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.previousValueToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.panel_modific = new FreeHttp.FreeHttpControl.MyPanel(); this.tabControl_Modific = new System.Windows.Forms.TabControl(); this.tabPage_requestModific = new System.Windows.Forms.TabPage(); this.splitContainer_requestModific = new System.Windows.Forms.SplitContainer(); this.groupBox_headsModific = new System.Windows.Forms.GroupBox(); this.requestAddHeads = new FreeHttp.FreeHttpControl.EditListView(); this.requestRemoveHeads = new FreeHttp.FreeHttpControl.EditListView(); this.groupBox_bodyModific = new System.Windows.Forms.GroupBox(); this.panel2 = new FreeHttp.FreeHttpControl.MyPanel(); this.rtb_requestModific_body = new System.Windows.Forms.RichTextBox(); this.panel1 = new FreeHttp.FreeHttpControl.MyPanel(); this.tbe_RequestBodyModific = new FreeHttp.FreeHttpControl.TextBoxEditer(); this.tb_requestModific_body = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.label1 = new System.Windows.Forms.Label(); this.groupBox_uriModific = new System.Windows.Forms.GroupBox(); this.tb_requestModific_uriModificKey = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.tb_requestModific_uriModificValue = new System.Windows.Forms.TextBox(); this.tabPage_requestReplace = new System.Windows.Forms.TabPage(); this.splitContainer_requestReplace = new System.Windows.Forms.SplitContainer(); this.elv_requsetReplace = new FreeHttp.FreeHttpControl.EditListView(); this.rtb_requsetReplace_body = new System.Windows.Forms.RichTextBox(); this.rtb_requestRaw = new System.Windows.Forms.RichTextBox(); this.panel_requestReplace_startLine = new FreeHttp.FreeHttpControl.MyPanel(); this.pb_requestReplace_changeMode = new System.Windows.Forms.PictureBox(); this.lb_editStartLine = new System.Windows.Forms.Label(); this.tb_requestReplace_uri = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.cb_editRequestMethod = new System.Windows.Forms.ComboBox(); this.cb_editRequestEdition = new System.Windows.Forms.ComboBox(); this.tabPage_responseModific = new System.Windows.Forms.TabPage(); this.splitContainer_responseModific = new System.Windows.Forms.SplitContainer(); this.groupBox_reponseHeadModific = new System.Windows.Forms.GroupBox(); this.responseAddHeads = new FreeHttp.FreeHttpControl.EditListView(); this.responseRemoveHeads = new FreeHttp.FreeHttpControl.EditListView(); this.groupBox_responseBodyModific = new System.Windows.Forms.GroupBox(); this.panel3 = new FreeHttp.FreeHttpControl.MyPanel(); this.rtb_respenseModific_body = new System.Windows.Forms.RichTextBox(); this.panel4 = new FreeHttp.FreeHttpControl.MyPanel(); this.tbe_ResponseBodyModific = new FreeHttp.FreeHttpControl.TextBoxEditer(); this.tb_responseModific_body = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.label2 = new System.Windows.Forms.Label(); this.tabPage_responseReplace = new System.Windows.Forms.TabPage(); this.rawResponseEdit = new FreeHttp.FreeHttpControl.RawResponseEdit(); this.panel_modific_Contorl = new FreeHttp.FreeHttpControl.MyPanel(); this.pb_parameterSwitch = new FreeHttp.FreeHttpControl.MySwitchPictureButton(); this.pb_protocolSwitch = new FreeHttp.FreeHttpControl.MySwitchPictureButton(); this.pb_pickRule = new System.Windows.Forms.PictureBox(); this.lbl_ResponseLatency = new System.Windows.Forms.LinkLabel(); this.pb_responseLatency = new System.Windows.Forms.PictureBox(); this.pb_ruleComfrim = new System.Windows.Forms.PictureBox(); this.pb_ruleCancel = new System.Windows.Forms.PictureBox(); this.menuStrip_quickRule = new System.Windows.Forms.MenuStrip(); this.quickRuleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.disableCacheToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.addCookieToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.deleteCookieToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.setClientCookieToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.copySessionCookiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.removeSessionCookiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.addUserAgentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.changeSessionEncodingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.modificToolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.independentWindowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.showSelectedSessionStreamToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.parameterDataManageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.httpTamperSettingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.loadingRemoteRuleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.feedbackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.codeInGithubToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.documentationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.tbe_urlFilter = new FreeHttp.FreeHttpControl.TextBoxEditer(); this.lv_requestRuleList = new FreeHttp.FreeHttpControl.MyListView(); this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader_requstRule = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.lv_responseRuleList = new FreeHttp.FreeHttpControl.MyListView(); this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader_responseRule = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.contextMenuStrip_AddFile.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer_main)).BeginInit(); this.splitContainer_main.Panel1.SuspendLayout(); this.splitContainer_main.Panel2.SuspendLayout(); this.splitContainer_main.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer_httpEditInfo)).BeginInit(); this.splitContainer_httpEditInfo.Panel1.SuspendLayout(); this.splitContainer_httpEditInfo.Panel2.SuspendLayout(); this.splitContainer_httpEditInfo.SuspendLayout(); this.groupBox_urlFilter.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_editHttpFilter)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_editRuleMode)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_getSession)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer_httpControl)).BeginInit(); this.splitContainer_httpControl.Panel1.SuspendLayout(); this.splitContainer_httpControl.Panel2.SuspendLayout(); this.splitContainer_httpControl.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pb_remoteRule)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_addRequestRule)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_removeRequestRule)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_requestRuleSwitch)).BeginInit(); this.contextMenu_ruleList.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pb_addResponseRule)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_removeResponseRule)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_responseRuleSwitch)).BeginInit(); this.contextMenuStrip_addParameter.SuspendLayout(); this.panel_modific.SuspendLayout(); this.tabControl_Modific.SuspendLayout(); this.tabPage_requestModific.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer_requestModific)).BeginInit(); this.splitContainer_requestModific.Panel1.SuspendLayout(); this.splitContainer_requestModific.Panel2.SuspendLayout(); this.splitContainer_requestModific.SuspendLayout(); this.groupBox_headsModific.SuspendLayout(); this.groupBox_bodyModific.SuspendLayout(); this.panel2.SuspendLayout(); this.panel1.SuspendLayout(); this.groupBox_uriModific.SuspendLayout(); this.tabPage_requestReplace.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer_requestReplace)).BeginInit(); this.splitContainer_requestReplace.Panel1.SuspendLayout(); this.splitContainer_requestReplace.Panel2.SuspendLayout(); this.splitContainer_requestReplace.SuspendLayout(); this.panel_requestReplace_startLine.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pb_requestReplace_changeMode)).BeginInit(); this.tabPage_responseModific.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer_responseModific)).BeginInit(); this.splitContainer_responseModific.Panel1.SuspendLayout(); this.splitContainer_responseModific.Panel2.SuspendLayout(); this.splitContainer_responseModific.SuspendLayout(); this.groupBox_reponseHeadModific.SuspendLayout(); this.groupBox_responseBodyModific.SuspendLayout(); this.panel3.SuspendLayout(); this.panel4.SuspendLayout(); this.tabPage_responseReplace.SuspendLayout(); this.panel_modific_Contorl.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pb_parameterSwitch)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_protocolSwitch)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_pickRule)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_responseLatency)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_ruleComfrim)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_ruleCancel)).BeginInit(); this.menuStrip_quickRule.SuspendLayout(); this.SuspendLayout(); // // imageList_forTab // this.imageList_forTab.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList_forTab.ImageStream"))); this.imageList_forTab.TransparentColor = System.Drawing.Color.Transparent; this.imageList_forTab.Images.SetKeyName(0, "request_modific.png"); this.imageList_forTab.Images.SetKeyName(1, "request_replace.png"); this.imageList_forTab.Images.SetKeyName(2, "response_modific.png"); this.imageList_forTab.Images.SetKeyName(3, "response_replace.png"); this.imageList_forTab.Images.SetKeyName(4, "ws_replace.png"); // // contextMenuStrip_AddFile // this.contextMenuStrip_AddFile.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.addFileToolStripMenuItem, this.addParameterDataToolStripMenuItem, this.toolStripSeparator_addAndCheck, this.antoContentLengthToolStripMenuItem}); this.contextMenuStrip_AddFile.Name = "contextMenuStrip_AddFile"; this.contextMenuStrip_AddFile.Size = new System.Drawing.Size(196, 76); this.contextMenuStrip_AddFile.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip_AddFile_Opening); // // addFileToolStripMenuItem // this.addFileToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("addFileToolStripMenuItem.Image"))); this.addFileToolStripMenuItem.Name = "addFileToolStripMenuItem"; this.addFileToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.addFileToolStripMenuItem.Text = "add file"; this.addFileToolStripMenuItem.Click += new System.EventHandler(this.addFileToolStripMenuItem_Click); // // addParameterDataToolStripMenuItem // this.addParameterDataToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.keyValueToolStripMenuItem, this.parameterToolStripMenuItem, this.dataSouceToolStripMenuItem, this.toolStripSeparator1, this.editDataToolStripMenuItem}); this.addParameterDataToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("addParameterDataToolStripMenuItem.Image"))); this.addParameterDataToolStripMenuItem.Name = "addParameterDataToolStripMenuItem"; this.addParameterDataToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.addParameterDataToolStripMenuItem.Text = "add Parameter Data"; this.addParameterDataToolStripMenuItem.DropDownOpening += new System.EventHandler(this.addParameterDataToolStripMenuItem_DropDownOpening); // // keyValueToolStripMenuItem // this.keyValueToolStripMenuItem.Name = "keyValueToolStripMenuItem"; this.keyValueToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.keyValueToolStripMenuItem.Text = "KeyValue"; // // parameterToolStripMenuItem // this.parameterToolStripMenuItem.Name = "parameterToolStripMenuItem"; this.parameterToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.parameterToolStripMenuItem.Text = "Parameter"; // // dataSouceToolStripMenuItem // this.dataSouceToolStripMenuItem.Name = "dataSouceToolStripMenuItem"; this.dataSouceToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.dataSouceToolStripMenuItem.Text = "DataSouce"; // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; this.toolStripSeparator1.Size = new System.Drawing.Size(135, 6); // // editDataToolStripMenuItem // this.editDataToolStripMenuItem.Name = "editDataToolStripMenuItem"; this.editDataToolStripMenuItem.Size = new System.Drawing.Size(138, 22); this.editDataToolStripMenuItem.Text = "Edit Data"; this.editDataToolStripMenuItem.Click += new System.EventHandler(this.parameterDataManageToolStripMenuItem_Click); // // toolStripSeparator_addAndCheck // this.toolStripSeparator_addAndCheck.Name = "toolStripSeparator_addAndCheck"; this.toolStripSeparator_addAndCheck.Size = new System.Drawing.Size(192, 6); // // antoContentLengthToolStripMenuItem // this.antoContentLengthToolStripMenuItem.Checked = true; this.antoContentLengthToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.antoContentLengthToolStripMenuItem.Name = "antoContentLengthToolStripMenuItem"; this.antoContentLengthToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.antoContentLengthToolStripMenuItem.Text = "anto Content-Length"; this.antoContentLengthToolStripMenuItem.Click += new System.EventHandler(this.antoContentLengthToolStripMenuItem_Click); // // openFileDialog_addFIle // this.openFileDialog_addFIle.FileName = "openFileDialog"; // // splitContainer_main // this.splitContainer_main.Dock = System.Windows.Forms.DockStyle.Fill; this.splitContainer_main.Location = new System.Drawing.Point(0, 0); this.splitContainer_main.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.splitContainer_main.Name = "splitContainer_main"; // // splitContainer_main.Panel1 // this.splitContainer_main.Panel1.Controls.Add(this.splitContainer_httpEditInfo); this.splitContainer_main.Panel1.Controls.Add(this.groupBox_urlFilter); // // splitContainer_main.Panel2 // this.splitContainer_main.Panel2.Controls.Add(this.splitContainer_httpControl); this.splitContainer_main.Size = new System.Drawing.Size(966, 552); this.splitContainer_main.SplitterDistance = 609; this.splitContainer_main.TabIndex = 0; // // splitContainer_httpEditInfo // this.splitContainer_httpEditInfo.Dock = System.Windows.Forms.DockStyle.Fill; this.splitContainer_httpEditInfo.Location = new System.Drawing.Point(0, 44); this.splitContainer_httpEditInfo.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.splitContainer_httpEditInfo.Name = "splitContainer_httpEditInfo"; this.splitContainer_httpEditInfo.Orientation = System.Windows.Forms.Orientation.Horizontal; // // splitContainer_httpEditInfo.Panel1 // this.splitContainer_httpEditInfo.Panel1.Controls.Add(this.panel_modific); // // splitContainer_httpEditInfo.Panel2 // this.splitContainer_httpEditInfo.Panel2.Controls.Add(this.rtb_MesInfo); this.splitContainer_httpEditInfo.Size = new System.Drawing.Size(609, 508); this.splitContainer_httpEditInfo.SplitterDistance = 356; this.splitContainer_httpEditInfo.TabIndex = 7; // // rtb_MesInfo // this.rtb_MesInfo.BackColor = System.Drawing.Color.Azure; this.rtb_MesInfo.DetectUrls = false; this.rtb_MesInfo.Dock = System.Windows.Forms.DockStyle.Fill; this.rtb_MesInfo.HideSelection = false; this.rtb_MesInfo.Location = new System.Drawing.Point(0, 0); this.rtb_MesInfo.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.rtb_MesInfo.Name = "rtb_MesInfo"; this.rtb_MesInfo.Size = new System.Drawing.Size(609, 148); this.rtb_MesInfo.TabIndex = 0; this.rtb_MesInfo.Text = ""; // // groupBox_urlFilter // this.groupBox_urlFilter.Controls.Add(this.pictureBox_editHttpFilter); this.groupBox_urlFilter.Controls.Add(this.tbe_urlFilter); this.groupBox_urlFilter.Controls.Add(this.lb_editRuleMode); this.groupBox_urlFilter.Controls.Add(this.pictureBox_editRuleMode); this.groupBox_urlFilter.Controls.Add(this.pb_getSession); this.groupBox_urlFilter.Controls.Add(this.cb_macthMode); this.groupBox_urlFilter.Controls.Add(this.tb_urlFilter); this.groupBox_urlFilter.Dock = System.Windows.Forms.DockStyle.Top; this.groupBox_urlFilter.Location = new System.Drawing.Point(0, 0); this.groupBox_urlFilter.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.groupBox_urlFilter.Name = "groupBox_urlFilter"; this.groupBox_urlFilter.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); this.groupBox_urlFilter.Size = new System.Drawing.Size(609, 44); this.groupBox_urlFilter.TabIndex = 6; this.groupBox_urlFilter.TabStop = false; this.groupBox_urlFilter.Text = "Url Filter"; // // pictureBox_editHttpFilter // this.pictureBox_editHttpFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.pictureBox_editHttpFilter.BackColor = System.Drawing.Color.Transparent; this.pictureBox_editHttpFilter.Cursor = System.Windows.Forms.Cursors.Hand; this.pictureBox_editHttpFilter.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox_editHttpFilter.Image"))); this.pictureBox_editHttpFilter.Location = new System.Drawing.Point(449, 17); this.pictureBox_editHttpFilter.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pictureBox_editHttpFilter.Name = "pictureBox_editHttpFilter"; this.pictureBox_editHttpFilter.Size = new System.Drawing.Size(20, 20); this.pictureBox_editHttpFilter.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox_editHttpFilter.TabIndex = 51; this.pictureBox_editHttpFilter.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pictureBox_editHttpFilter, "edit advanced http filter"); this.pictureBox_editHttpFilter.Click += new System.EventHandler(this.pictureBox_editHttpFilter_Click); this.pictureBox_editHttpFilter.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pictureBox_editHttpFilter.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // tb_urlFilter // this.tb_urlFilter.AllowDrop = true; this.tb_urlFilter.Location = new System.Drawing.Point(104, 18); this.tb_urlFilter.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tb_urlFilter.Name = "tb_urlFilter"; this.tb_urlFilter.Size = new System.Drawing.Size(344, 21); this.tb_urlFilter.TabIndex = 0; this.toolTip_forMainWindow.SetToolTip(this.tb_urlFilter, "the match vaule (match full url include http:// and ?key=value)"); this.tb_urlFilter.DragDrop += new System.Windows.Forms.DragEventHandler(this.tb_urlFilter_DragDrop); this.tb_urlFilter.DragEnter += new System.Windows.Forms.DragEventHandler(this.tb_urlFilter_DragEnter); this.tb_urlFilter.Enter += new System.EventHandler(this.tb_Modific_body_Enter); this.tb_urlFilter.Leave += new System.EventHandler(this.tb_Modific_body_Leave); // // lb_editRuleMode // this.lb_editRuleMode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.lb_editRuleMode.AutoSize = true; this.lb_editRuleMode.Location = new System.Drawing.Point(497, 21); this.lb_editRuleMode.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.lb_editRuleMode.Name = "lb_editRuleMode"; this.lb_editRuleMode.Size = new System.Drawing.Size(53, 12); this.lb_editRuleMode.TabIndex = 40; this.lb_editRuleMode.Text = "New Rule"; // // pictureBox_editRuleMode // this.pictureBox_editRuleMode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pictureBox_editRuleMode.BackColor = System.Drawing.Color.Transparent; this.pictureBox_editRuleMode.Cursor = System.Windows.Forms.Cursors.Hand; this.pictureBox_editRuleMode.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox_editRuleMode.Image"))); this.pictureBox_editRuleMode.Location = new System.Drawing.Point(471, 16); this.pictureBox_editRuleMode.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pictureBox_editRuleMode.Name = "pictureBox_editRuleMode"; this.pictureBox_editRuleMode.Size = new System.Drawing.Size(23, 22); this.pictureBox_editRuleMode.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox_editRuleMode.TabIndex = 39; this.pictureBox_editRuleMode.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pictureBox_editRuleMode, "new a rule"); this.pictureBox_editRuleMode.Click += new System.EventHandler(this.pictureBox_editRuleMode_Click); this.pictureBox_editRuleMode.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pictureBox_editRuleMode.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // pb_getSession // this.pb_getSession.BackColor = System.Drawing.Color.Transparent; this.pb_getSession.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_getSession.Image = ((System.Drawing.Image)(resources.GetObject("pb_getSession.Image"))); this.pb_getSession.Location = new System.Drawing.Point(5, 16); this.pb_getSession.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_getSession.Name = "pb_getSession"; this.pb_getSession.Size = new System.Drawing.Size(24, 24); this.pb_getSession.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_getSession.TabIndex = 38; this.pb_getSession.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_getSession, "get http sesion in left session list"); this.pb_getSession.Click += new System.EventHandler(this.pb_getSession_Click); this.pb_getSession.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pb_getSession.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // cb_macthMode // this.cb_macthMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cb_macthMode.FormattingEnabled = true; this.cb_macthMode.Items.AddRange(new object[] { "Contain", "StartWith", "EndWith", "Is", "Regex", "AllPass"}); this.cb_macthMode.Location = new System.Drawing.Point(30, 18); this.cb_macthMode.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.cb_macthMode.Name = "cb_macthMode"; this.cb_macthMode.Size = new System.Drawing.Size(72, 20); this.cb_macthMode.TabIndex = 2; this.toolTip_forMainWindow.SetToolTip(this.cb_macthMode, resources.GetString("cb_macthMode.ToolTip")); this.cb_macthMode.SelectedIndexChanged += new System.EventHandler(this.cb_macthMode_SelectedIndexChanged); // // splitContainer_httpControl // this.splitContainer_httpControl.BackColor = System.Drawing.SystemColors.Window; this.splitContainer_httpControl.Dock = System.Windows.Forms.DockStyle.Fill; this.splitContainer_httpControl.Location = new System.Drawing.Point(0, 0); this.splitContainer_httpControl.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.splitContainer_httpControl.Name = "splitContainer_httpControl"; this.splitContainer_httpControl.Orientation = System.Windows.Forms.Orientation.Horizontal; // // splitContainer_httpControl.Panel1 // this.splitContainer_httpControl.Panel1.Controls.Add(this.pb_remoteRule); this.splitContainer_httpControl.Panel1.Controls.Add(this.pb_addRequestRule); this.splitContainer_httpControl.Panel1.Controls.Add(this.pb_removeRequestRule); this.splitContainer_httpControl.Panel1.Controls.Add(this.pb_requestRuleSwitch); this.splitContainer_httpControl.Panel1.Controls.Add(this.lv_requestRuleList); // // splitContainer_httpControl.Panel2 // this.splitContainer_httpControl.Panel2.Controls.Add(this.pb_addResponseRule); this.splitContainer_httpControl.Panel2.Controls.Add(this.pb_removeResponseRule); this.splitContainer_httpControl.Panel2.Controls.Add(this.pb_responseRuleSwitch); this.splitContainer_httpControl.Panel2.Controls.Add(this.lv_responseRuleList); this.splitContainer_httpControl.Size = new System.Drawing.Size(353, 552); this.splitContainer_httpControl.SplitterDistance = 201; this.splitContainer_httpControl.TabIndex = 0; this.splitContainer_httpControl.Resize += new System.EventHandler(this.splitContainer_httpControl_Resize); // // pb_remoteRule // this.pb_remoteRule.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_remoteRule.BackColor = System.Drawing.Color.Transparent; this.pb_remoteRule.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_remoteRule.Image = global::FreeHttp.Properties.Resources.cloud; this.pb_remoteRule.Location = new System.Drawing.Point(252, 1); this.pb_remoteRule.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_remoteRule.Name = "pb_remoteRule"; this.pb_remoteRule.Size = new System.Drawing.Size(20, 20); this.pb_remoteRule.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_remoteRule.TabIndex = 54; this.pb_remoteRule.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_remoteRule, "add a new request rule"); this.pb_remoteRule.Click += new System.EventHandler(this.loadingRemoteRuleToolStripMenuItem_Click); // // pb_addRequestRule // this.pb_addRequestRule.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_addRequestRule.BackColor = System.Drawing.Color.Transparent; this.pb_addRequestRule.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_addRequestRule.Image = ((System.Drawing.Image)(resources.GetObject("pb_addRequestRule.Image"))); this.pb_addRequestRule.Location = new System.Drawing.Point(279, 1); this.pb_addRequestRule.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_addRequestRule.Name = "pb_addRequestRule"; this.pb_addRequestRule.Size = new System.Drawing.Size(20, 20); this.pb_addRequestRule.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_addRequestRule.TabIndex = 53; this.pb_addRequestRule.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_addRequestRule, "add a new request rule"); this.pb_addRequestRule.Click += new System.EventHandler(this.pb_addTemperRule_Click); // // pb_removeRequestRule // this.pb_removeRequestRule.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_removeRequestRule.BackColor = System.Drawing.Color.Transparent; this.pb_removeRequestRule.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_removeRequestRule.Image = ((System.Drawing.Image)(resources.GetObject("pb_removeRequestRule.Image"))); this.pb_removeRequestRule.Location = new System.Drawing.Point(299, 1); this.pb_removeRequestRule.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_removeRequestRule.Name = "pb_removeRequestRule"; this.pb_removeRequestRule.Size = new System.Drawing.Size(20, 20); this.pb_removeRequestRule.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_removeRequestRule.TabIndex = 52; this.pb_removeRequestRule.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_removeRequestRule, "remove selected rule"); this.pb_removeRequestRule.Click += new System.EventHandler(this.pb_removeTemperRule_Click); // // pb_requestRuleSwitch // this.pb_requestRuleSwitch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_requestRuleSwitch.BackColor = System.Drawing.Color.Transparent; this.pb_requestRuleSwitch.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_requestRuleSwitch.Image = ((System.Drawing.Image)(resources.GetObject("pb_requestRuleSwitch.Image"))); this.pb_requestRuleSwitch.Location = new System.Drawing.Point(317, 1); this.pb_requestRuleSwitch.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_requestRuleSwitch.Name = "pb_requestRuleSwitch"; this.pb_requestRuleSwitch.Size = new System.Drawing.Size(36, 20); this.pb_requestRuleSwitch.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_requestRuleSwitch.TabIndex = 38; this.pb_requestRuleSwitch.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_requestRuleSwitch, "enable the requst rule"); this.pb_requestRuleSwitch.Click += new System.EventHandler(this.pb_requestRuleSwitch_Click); // // contextMenu_ruleList // this.contextMenu_ruleList.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.removeSelectedRuleToolStripMenuItem, this.removeAllRuleToolStripMenuItem, this.copySelectedRuleToolStripMenuItem, this.enableThisRuleToolStripMenuItem, this.enableAllRuleToolStripMenuItem, this.unableAllRuleToolStripMenuItem, this.editThisRuleToolStripMenuItem, this.groupToolStripMenuItem}); this.contextMenu_ruleList.Name = "contextMenu_ruleList"; this.contextMenu_ruleList.Size = new System.Drawing.Size(199, 180); // // removeSelectedRuleToolStripMenuItem // this.removeSelectedRuleToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("removeSelectedRuleToolStripMenuItem.Image"))); this.removeSelectedRuleToolStripMenuItem.Name = "removeSelectedRuleToolStripMenuItem"; this.removeSelectedRuleToolStripMenuItem.Size = new System.Drawing.Size(198, 22); this.removeSelectedRuleToolStripMenuItem.Text = "remove selected rule"; this.removeSelectedRuleToolStripMenuItem.Click += new System.EventHandler(this.removeSelectedRuleToolStripMenuItem_Click); // // removeAllRuleToolStripMenuItem // this.removeAllRuleToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("removeAllRuleToolStripMenuItem.Image"))); this.removeAllRuleToolStripMenuItem.Name = "removeAllRuleToolStripMenuItem"; this.removeAllRuleToolStripMenuItem.Size = new System.Drawing.Size(198, 22); this.removeAllRuleToolStripMenuItem.Text = "remove all rule"; this.removeAllRuleToolStripMenuItem.Click += new System.EventHandler(this.removeAllRuleToolStripMenuItem_Click); // // copySelectedRuleToolStripMenuItem // this.copySelectedRuleToolStripMenuItem.Image = global::FreeHttp.Properties.Resources.copy; this.copySelectedRuleToolStripMenuItem.Name = "copySelectedRuleToolStripMenuItem"; this.copySelectedRuleToolStripMenuItem.Size = new System.Drawing.Size(198, 22); this.copySelectedRuleToolStripMenuItem.Text = "copy selected rule"; this.copySelectedRuleToolStripMenuItem.Click += new System.EventHandler(this.copySelectedRuleToolStripMenuItem_Click); // // enableThisRuleToolStripMenuItem // this.enableThisRuleToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("enableThisRuleToolStripMenuItem.Image"))); this.enableThisRuleToolStripMenuItem.Name = "enableThisRuleToolStripMenuItem"; this.enableThisRuleToolStripMenuItem.Size = new System.Drawing.Size(198, 22); this.enableThisRuleToolStripMenuItem.Text = "enable this rule"; this.enableThisRuleToolStripMenuItem.Click += new System.EventHandler(this.enableThisRuleToolStripMenuItem_Click); // // enableAllRuleToolStripMenuItem // this.enableAllRuleToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("enableAllRuleToolStripMenuItem.Image"))); this.enableAllRuleToolStripMenuItem.Name = "enableAllRuleToolStripMenuItem"; this.enableAllRuleToolStripMenuItem.Size = new System.Drawing.Size(198, 22); this.enableAllRuleToolStripMenuItem.Text = "enable all rule"; this.enableAllRuleToolStripMenuItem.Click += new System.EventHandler(this.enableAllRuleToolStripMenuItem_Click); // // unableAllRuleToolStripMenuItem // this.unableAllRuleToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("unableAllRuleToolStripMenuItem.Image"))); this.unableAllRuleToolStripMenuItem.Name = "unableAllRuleToolStripMenuItem"; this.unableAllRuleToolStripMenuItem.Size = new System.Drawing.Size(198, 22); this.unableAllRuleToolStripMenuItem.Text = "unable all rule"; this.unableAllRuleToolStripMenuItem.Click += new System.EventHandler(this.unableAllRuleToolStripMenuItem_Click); // // editThisRuleToolStripMenuItem // this.editThisRuleToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("editThisRuleToolStripMenuItem.Image"))); this.editThisRuleToolStripMenuItem.Name = "editThisRuleToolStripMenuItem"; this.editThisRuleToolStripMenuItem.Size = new System.Drawing.Size(198, 22); this.editThisRuleToolStripMenuItem.Text = "edit this rule"; this.editThisRuleToolStripMenuItem.Click += new System.EventHandler(this.editThisRuleToolStripMenuItem_Click); // // groupToolStripMenuItem // this.groupToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.addToNewGroupToolStripMenuItem, this.moveToGroupToolStripMenuItem, this.renameThisGroupToolStripMenuItem, this.deleteThisGroupToolStripMenuItem, this.enableThisGroupToolStripMenuItem, this.unableThisGroupToolStripMenuItem}); this.groupToolStripMenuItem.Image = global::FreeHttp.Properties.Resources.group; this.groupToolStripMenuItem.Name = "groupToolStripMenuItem"; this.groupToolStripMenuItem.Size = new System.Drawing.Size(198, 22); this.groupToolStripMenuItem.Text = "group"; this.groupToolStripMenuItem.DropDownOpened += new System.EventHandler(this.groupToolStripMenuItem_DropDownOpened); // // addToNewGroupToolStripMenuItem // this.addToNewGroupToolStripMenuItem.Image = global::FreeHttp.Properties.Resources.add; this.addToNewGroupToolStripMenuItem.Name = "addToNewGroupToolStripMenuItem"; this.addToNewGroupToolStripMenuItem.Size = new System.Drawing.Size(184, 22); this.addToNewGroupToolStripMenuItem.Text = "add to new group"; this.addToNewGroupToolStripMenuItem.Click += new System.EventHandler(this.addToNewGroupToolStripMenuItem_Click); // // moveToGroupToolStripMenuItem // this.moveToGroupToolStripMenuItem.Image = global::FreeHttp.Properties.Resources.move; this.moveToGroupToolStripMenuItem.Name = "moveToGroupToolStripMenuItem"; this.moveToGroupToolStripMenuItem.Size = new System.Drawing.Size(184, 22); this.moveToGroupToolStripMenuItem.Text = "move to group"; this.moveToGroupToolStripMenuItem.DropDownOpening += new System.EventHandler(this.moveToGroupToolStripMenuItem_DropDownOpening); // // renameThisGroupToolStripMenuItem // this.renameThisGroupToolStripMenuItem.Image = global::FreeHttp.Properties.Resources.rename; this.renameThisGroupToolStripMenuItem.Name = "renameThisGroupToolStripMenuItem"; this.renameThisGroupToolStripMenuItem.Size = new System.Drawing.Size(184, 22); this.renameThisGroupToolStripMenuItem.Text = "rename this group"; this.renameThisGroupToolStripMenuItem.Click += new System.EventHandler(this.renameThisGroupToolStripMenuItem_Click); // // deleteThisGroupToolStripMenuItem // this.deleteThisGroupToolStripMenuItem.Image = global::FreeHttp.Properties.Resources.remove; this.deleteThisGroupToolStripMenuItem.Name = "deleteThisGroupToolStripMenuItem"; this.deleteThisGroupToolStripMenuItem.Size = new System.Drawing.Size(184, 22); this.deleteThisGroupToolStripMenuItem.Text = "delete this group"; this.deleteThisGroupToolStripMenuItem.Click += new System.EventHandler(this.deleteThisGroupToolStripMenuItem_Click); // // enableThisGroupToolStripMenuItem // this.enableThisGroupToolStripMenuItem.Image = global::FreeHttp.Properties.Resources.unselect; this.enableThisGroupToolStripMenuItem.Name = "enableThisGroupToolStripMenuItem"; this.enableThisGroupToolStripMenuItem.Size = new System.Drawing.Size(184, 22); this.enableThisGroupToolStripMenuItem.Text = "enable this group"; this.enableThisGroupToolStripMenuItem.Click += new System.EventHandler(this.enableThisGroupToolStripMenuItem_Click); // // unableThisGroupToolStripMenuItem // this.unableThisGroupToolStripMenuItem.Image = global::FreeHttp.Properties.Resources.select; this.unableThisGroupToolStripMenuItem.Name = "unableThisGroupToolStripMenuItem"; this.unableThisGroupToolStripMenuItem.Size = new System.Drawing.Size(184, 22); this.unableThisGroupToolStripMenuItem.Text = "unable this group"; this.unableThisGroupToolStripMenuItem.Click += new System.EventHandler(this.unableThisGroupToolStripMenuItem_Click); // // pb_addResponseRule // this.pb_addResponseRule.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_addResponseRule.BackColor = System.Drawing.Color.Transparent; this.pb_addResponseRule.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_addResponseRule.Image = ((System.Drawing.Image)(resources.GetObject("pb_addResponseRule.Image"))); this.pb_addResponseRule.Location = new System.Drawing.Point(277, 1); this.pb_addResponseRule.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_addResponseRule.Name = "pb_addResponseRule"; this.pb_addResponseRule.Size = new System.Drawing.Size(20, 20); this.pb_addResponseRule.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_addResponseRule.TabIndex = 55; this.pb_addResponseRule.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_addResponseRule, "add a new response rule"); this.pb_addResponseRule.Click += new System.EventHandler(this.pb_addTemperRule_Click); // // pb_removeResponseRule // this.pb_removeResponseRule.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_removeResponseRule.BackColor = System.Drawing.Color.Transparent; this.pb_removeResponseRule.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_removeResponseRule.Image = ((System.Drawing.Image)(resources.GetObject("pb_removeResponseRule.Image"))); this.pb_removeResponseRule.Location = new System.Drawing.Point(297, 1); this.pb_removeResponseRule.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_removeResponseRule.Name = "pb_removeResponseRule"; this.pb_removeResponseRule.Size = new System.Drawing.Size(20, 20); this.pb_removeResponseRule.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_removeResponseRule.TabIndex = 54; this.pb_removeResponseRule.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_removeResponseRule, "remove selected rule"); this.pb_removeResponseRule.Click += new System.EventHandler(this.pb_removeTemperRule_Click); // // pb_responseRuleSwitch // this.pb_responseRuleSwitch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_responseRuleSwitch.BackColor = System.Drawing.Color.Transparent; this.pb_responseRuleSwitch.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_responseRuleSwitch.Image = ((System.Drawing.Image)(resources.GetObject("pb_responseRuleSwitch.Image"))); this.pb_responseRuleSwitch.Location = new System.Drawing.Point(317, 1); this.pb_responseRuleSwitch.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_responseRuleSwitch.Name = "pb_responseRuleSwitch"; this.pb_responseRuleSwitch.Size = new System.Drawing.Size(36, 20); this.pb_responseRuleSwitch.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_responseRuleSwitch.TabIndex = 39; this.pb_responseRuleSwitch.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_responseRuleSwitch, "enable the response rule"); this.pb_responseRuleSwitch.Click += new System.EventHandler(this.pb_responseRuleSwitch_Click); // // contextMenuStrip_addParameter // this.contextMenuStrip_addParameter.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.currentValueToolStripMenuItem, this.nextValueToolStripMenuItem, this.previousValueToolStripMenuItem}); this.contextMenuStrip_addParameter.Name = "contextMenuStrip_addParameter"; this.contextMenuStrip_addParameter.Size = new System.Drawing.Size(167, 70); this.contextMenuStrip_addParameter.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip_addParameter_Opening); // // currentValueToolStripMenuItem // this.currentValueToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("currentValueToolStripMenuItem.Image"))); this.currentValueToolStripMenuItem.Name = "currentValueToolStripMenuItem"; this.currentValueToolStripMenuItem.Size = new System.Drawing.Size(166, 22); this.currentValueToolStripMenuItem.Text = "current value"; this.currentValueToolStripMenuItem.Click += new System.EventHandler(this.addParameterDataToolStripMenuItem_Click); // // nextValueToolStripMenuItem // this.nextValueToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("nextValueToolStripMenuItem.Image"))); this.nextValueToolStripMenuItem.Name = "nextValueToolStripMenuItem"; this.nextValueToolStripMenuItem.Size = new System.Drawing.Size(166, 22); this.nextValueToolStripMenuItem.Text = "next value"; this.nextValueToolStripMenuItem.Click += new System.EventHandler(this.addParameterDataToolStripMenuItem_Click); // // previousValueToolStripMenuItem // this.previousValueToolStripMenuItem.Image = global::FreeHttp.Properties.Resources._goto; this.previousValueToolStripMenuItem.Name = "previousValueToolStripMenuItem"; this.previousValueToolStripMenuItem.Size = new System.Drawing.Size(166, 22); this.previousValueToolStripMenuItem.Text = "next multi value"; this.previousValueToolStripMenuItem.Click += new System.EventHandler(this.addParameterDataToolStripMenuItem_Click); // // panel_modific // this.panel_modific.BackColor = System.Drawing.SystemColors.Control; this.panel_modific.Controls.Add(this.tabControl_Modific); this.panel_modific.Controls.Add(this.panel_modific_Contorl); this.panel_modific.Dock = System.Windows.Forms.DockStyle.Fill; this.panel_modific.Location = new System.Drawing.Point(0, 0); this.panel_modific.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.panel_modific.Name = "panel_modific"; this.panel_modific.Size = new System.Drawing.Size(609, 356); this.panel_modific.TabIndex = 7; // // tabControl_Modific // this.tabControl_Modific.Controls.Add(this.tabPage_requestModific); this.tabControl_Modific.Controls.Add(this.tabPage_requestReplace); this.tabControl_Modific.Controls.Add(this.tabPage_responseModific); this.tabControl_Modific.Controls.Add(this.tabPage_responseReplace); this.tabControl_Modific.Dock = System.Windows.Forms.DockStyle.Fill; this.tabControl_Modific.ImageList = this.imageList_forTab; this.tabControl_Modific.Location = new System.Drawing.Point(0, 0); this.tabControl_Modific.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tabControl_Modific.Name = "tabControl_Modific"; this.tabControl_Modific.SelectedIndex = 0; this.tabControl_Modific.Size = new System.Drawing.Size(609, 329); this.tabControl_Modific.TabIndex = 0; this.toolTip_forMainWindow.SetToolTip(this.tabControl_Modific, resources.GetString("tabControl_Modific.ToolTip")); this.tabControl_Modific.Selecting += new System.Windows.Forms.TabControlCancelEventHandler(this.tabControl_Modific_Selecting); this.tabControl_Modific.Resize += new System.EventHandler(this.tabControl_Modific_Resize); // // tabPage_requestModific // this.tabPage_requestModific.BackColor = System.Drawing.Color.Transparent; this.tabPage_requestModific.Controls.Add(this.splitContainer_requestModific); this.tabPage_requestModific.Controls.Add(this.groupBox_uriModific); this.tabPage_requestModific.ForeColor = System.Drawing.SystemColors.ControlText; this.tabPage_requestModific.ImageKey = "request_modific.png"; this.tabPage_requestModific.Location = new System.Drawing.Point(4, 23); this.tabPage_requestModific.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tabPage_requestModific.Name = "tabPage_requestModific"; this.tabPage_requestModific.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tabPage_requestModific.Size = new System.Drawing.Size(601, 302); this.tabPage_requestModific.TabIndex = 0; this.tabPage_requestModific.Text = "Request Modific"; // // splitContainer_requestModific // this.splitContainer_requestModific.Dock = System.Windows.Forms.DockStyle.Fill; this.splitContainer_requestModific.Location = new System.Drawing.Point(4, 56); this.splitContainer_requestModific.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.splitContainer_requestModific.Name = "splitContainer_requestModific"; this.splitContainer_requestModific.Orientation = System.Windows.Forms.Orientation.Horizontal; // // splitContainer_requestModific.Panel1 // this.splitContainer_requestModific.Panel1.Controls.Add(this.groupBox_headsModific); // // splitContainer_requestModific.Panel2 // this.splitContainer_requestModific.Panel2.Controls.Add(this.groupBox_bodyModific); this.splitContainer_requestModific.Size = new System.Drawing.Size(593, 243); this.splitContainer_requestModific.SplitterDistance = 107; this.splitContainer_requestModific.TabIndex = 1; // // groupBox_headsModific // this.groupBox_headsModific.Controls.Add(this.requestAddHeads); this.groupBox_headsModific.Controls.Add(this.requestRemoveHeads); this.groupBox_headsModific.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox_headsModific.Location = new System.Drawing.Point(0, 0); this.groupBox_headsModific.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.groupBox_headsModific.Name = "groupBox_headsModific"; this.groupBox_headsModific.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); this.groupBox_headsModific.Size = new System.Drawing.Size(593, 107); this.groupBox_headsModific.TabIndex = 1; this.groupBox_headsModific.TabStop = false; this.groupBox_headsModific.Text = "Heads Modific"; // // requestAddHeads // this.requestAddHeads.ColumnHeaderName = "Add Head"; this.requestAddHeads.Dock = System.Windows.Forms.DockStyle.Right; this.requestAddHeads.IsItemUnique = false; this.requestAddHeads.IsKeyValue = true; this.requestAddHeads.Location = new System.Drawing.Point(279, 17); this.requestAddHeads.Margin = new System.Windows.Forms.Padding(6); this.requestAddHeads.Name = "requestAddHeads"; this.requestAddHeads.Size = new System.Drawing.Size(310, 87); this.requestAddHeads.SplitStr = ": "; this.requestAddHeads.TabIndex = 1; // // requestRemoveHeads // this.requestRemoveHeads.ColumnHeaderName = "Remove Head"; this.requestRemoveHeads.Dock = System.Windows.Forms.DockStyle.Left; this.requestRemoveHeads.IsItemUnique = false; this.requestRemoveHeads.IsKeyValue = false; this.requestRemoveHeads.Location = new System.Drawing.Point(4, 17); this.requestRemoveHeads.Margin = new System.Windows.Forms.Padding(6); this.requestRemoveHeads.Name = "requestRemoveHeads"; this.requestRemoveHeads.Size = new System.Drawing.Size(275, 87); this.requestRemoveHeads.SplitStr = ": "; this.requestRemoveHeads.TabIndex = 0; // // groupBox_bodyModific // this.groupBox_bodyModific.Controls.Add(this.panel2); this.groupBox_bodyModific.Controls.Add(this.panel1); this.groupBox_bodyModific.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox_bodyModific.Location = new System.Drawing.Point(0, 0); this.groupBox_bodyModific.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.groupBox_bodyModific.Name = "groupBox_bodyModific"; this.groupBox_bodyModific.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); this.groupBox_bodyModific.Size = new System.Drawing.Size(593, 132); this.groupBox_bodyModific.TabIndex = 2; this.groupBox_bodyModific.TabStop = false; this.groupBox_bodyModific.Text = "Body Modific"; // // panel2 // this.panel2.Controls.Add(this.rtb_requestModific_body); this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; this.panel2.Location = new System.Drawing.Point(4, 50); this.panel2.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.panel2.Name = "panel2"; this.panel2.Size = new System.Drawing.Size(585, 79); this.panel2.TabIndex = 48; // // rtb_requestModific_body // this.rtb_requestModific_body.ContextMenuStrip = this.contextMenuStrip_AddFile; this.rtb_requestModific_body.Dock = System.Windows.Forms.DockStyle.Fill; this.rtb_requestModific_body.Location = new System.Drawing.Point(0, 0); this.rtb_requestModific_body.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.rtb_requestModific_body.Name = "rtb_requestModific_body"; this.rtb_requestModific_body.Size = new System.Drawing.Size(585, 79); this.rtb_requestModific_body.TabIndex = 0; this.rtb_requestModific_body.Text = ""; this.toolTip_forMainWindow.SetToolTip(this.rtb_requestModific_body, "empty mean not change the request body"); // // panel1 // this.panel1.Controls.Add(this.tbe_RequestBodyModific); this.panel1.Controls.Add(this.tb_requestModific_body); this.panel1.Controls.Add(this.label1); this.panel1.Dock = System.Windows.Forms.DockStyle.Top; this.panel1.Location = new System.Drawing.Point(4, 17); this.panel1.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(585, 33); this.panel1.TabIndex = 47; // // tbe_RequestBodyModific // this.tbe_RequestBodyModific.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.tbe_RequestBodyModific.BackColor = System.Drawing.SystemColors.Window; this.tbe_RequestBodyModific.EditTextBox = this.tb_requestModific_body; this.tbe_RequestBodyModific.Location = new System.Drawing.Point(562, 6); this.tbe_RequestBodyModific.MainContainerControl = this; this.tbe_RequestBodyModific.Margin = new System.Windows.Forms.Padding(6); this.tbe_RequestBodyModific.Name = "tbe_RequestBodyModific"; this.tbe_RequestBodyModific.Size = new System.Drawing.Size(17, 17); this.tbe_RequestBodyModific.TabIndex = 49; // // tb_requestModific_body // this.tb_requestModific_body.AcceptsReturn = true; this.tb_requestModific_body.Location = new System.Drawing.Point(64, 5); this.tb_requestModific_body.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tb_requestModific_body.Name = "tb_requestModific_body"; this.tb_requestModific_body.Size = new System.Drawing.Size(519, 21); this.tb_requestModific_body.TabIndex = 47; this.toolTip_forMainWindow.SetToolTip(this.tb_requestModific_body, resources.GetString("tb_requestModific_body.ToolTip")); this.tb_requestModific_body.WatermarkText = "empty mean replace all body , start with \"\" mean regex replace,\"\" mea" + "n hex replace ,\"\"mean change the character set"; this.tb_requestModific_body.Enter += new System.EventHandler(this.tb_Modific_body_Enter); this.tb_requestModific_body.Leave += new System.EventHandler(this.tb_Modific_body_Leave); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(10, 9); this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(47, 12); this.label1.TabIndex = 48; this.label1.Text = "Replace"; // // groupBox_uriModific // this.groupBox_uriModific.Controls.Add(this.tb_requestModific_uriModificKey); this.groupBox_uriModific.Controls.Add(this.tb_requestModific_uriModificValue); this.groupBox_uriModific.Dock = System.Windows.Forms.DockStyle.Top; this.groupBox_uriModific.Location = new System.Drawing.Point(4, 3); this.groupBox_uriModific.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.groupBox_uriModific.Name = "groupBox_uriModific"; this.groupBox_uriModific.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); this.groupBox_uriModific.Size = new System.Drawing.Size(593, 53); this.groupBox_uriModific.TabIndex = 0; this.groupBox_uriModific.TabStop = false; this.groupBox_uriModific.Text = "Uri Modific"; // // tb_requestModific_uriModificKey // this.tb_requestModific_uriModificKey.Location = new System.Drawing.Point(6, 20); this.tb_requestModific_uriModificKey.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tb_requestModific_uriModificKey.Name = "tb_requestModific_uriModificKey"; this.tb_requestModific_uriModificKey.Size = new System.Drawing.Size(94, 21); this.tb_requestModific_uriModificKey.TabIndex = 4; this.toolTip_forMainWindow.SetToolTip(this.tb_requestModific_uriModificKey, "set it empty when you want replace all the full url"); this.tb_requestModific_uriModificKey.WatermarkText = "empty is all"; // // tb_requestModific_uriModificValue // this.tb_requestModific_uriModificValue.Location = new System.Drawing.Point(106, 20); this.tb_requestModific_uriModificValue.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tb_requestModific_uriModificValue.Name = "tb_requestModific_uriModificValue"; this.tb_requestModific_uriModificValue.Size = new System.Drawing.Size(485, 21); this.tb_requestModific_uriModificValue.TabIndex = 3; this.toolTip_forMainWindow.SetToolTip(this.tb_requestModific_uriModificValue, "empty mean not change the url"); // // tabPage_requestReplace // this.tabPage_requestReplace.Controls.Add(this.splitContainer_requestReplace); this.tabPage_requestReplace.Controls.Add(this.rtb_requestRaw); this.tabPage_requestReplace.Controls.Add(this.panel_requestReplace_startLine); this.tabPage_requestReplace.ImageKey = "request_replace.png"; this.tabPage_requestReplace.Location = new System.Drawing.Point(4, 23); this.tabPage_requestReplace.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tabPage_requestReplace.Name = "tabPage_requestReplace"; this.tabPage_requestReplace.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tabPage_requestReplace.Size = new System.Drawing.Size(601, 302); this.tabPage_requestReplace.TabIndex = 1; this.tabPage_requestReplace.Text = "Request Replace"; this.tabPage_requestReplace.UseVisualStyleBackColor = true; // // splitContainer_requestReplace // this.splitContainer_requestReplace.Dock = System.Windows.Forms.DockStyle.Fill; this.splitContainer_requestReplace.Location = new System.Drawing.Point(4, 36); this.splitContainer_requestReplace.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.splitContainer_requestReplace.Name = "splitContainer_requestReplace"; this.splitContainer_requestReplace.Orientation = System.Windows.Forms.Orientation.Horizontal; // // splitContainer_requestReplace.Panel1 // this.splitContainer_requestReplace.Panel1.Controls.Add(this.elv_requsetReplace); // // splitContainer_requestReplace.Panel2 // this.splitContainer_requestReplace.Panel2.Controls.Add(this.rtb_requsetReplace_body); this.splitContainer_requestReplace.Size = new System.Drawing.Size(593, 263); this.splitContainer_requestReplace.SplitterDistance = 102; this.splitContainer_requestReplace.TabIndex = 18; // // elv_requsetReplace // this.elv_requsetReplace.ColumnHeaderName = "Request Heads"; this.elv_requsetReplace.Dock = System.Windows.Forms.DockStyle.Fill; this.elv_requsetReplace.IsItemUnique = false; this.elv_requsetReplace.IsKeyValue = true; this.elv_requsetReplace.Location = new System.Drawing.Point(0, 0); this.elv_requsetReplace.Margin = new System.Windows.Forms.Padding(6); this.elv_requsetReplace.Name = "elv_requsetReplace"; this.elv_requsetReplace.Size = new System.Drawing.Size(593, 102); this.elv_requsetReplace.SplitStr = ": "; this.elv_requsetReplace.TabIndex = 2; // // rtb_requsetReplace_body // this.rtb_requsetReplace_body.ContextMenuStrip = this.contextMenuStrip_AddFile; this.rtb_requsetReplace_body.Dock = System.Windows.Forms.DockStyle.Fill; this.rtb_requsetReplace_body.Location = new System.Drawing.Point(0, 0); this.rtb_requsetReplace_body.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.rtb_requsetReplace_body.Name = "rtb_requsetReplace_body"; this.rtb_requsetReplace_body.Size = new System.Drawing.Size(593, 157); this.rtb_requsetReplace_body.TabIndex = 1; this.rtb_requsetReplace_body.Text = ""; // // rtb_requestRaw // this.rtb_requestRaw.ContextMenuStrip = this.contextMenuStrip_AddFile; this.rtb_requestRaw.DetectUrls = false; this.rtb_requestRaw.Dock = System.Windows.Forms.DockStyle.Fill; this.rtb_requestRaw.Location = new System.Drawing.Point(4, 36); this.rtb_requestRaw.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.rtb_requestRaw.Name = "rtb_requestRaw"; this.rtb_requestRaw.Size = new System.Drawing.Size(593, 263); this.rtb_requestRaw.TabIndex = 0; this.rtb_requestRaw.Text = ""; // // panel_requestReplace_startLine // this.panel_requestReplace_startLine.Controls.Add(this.pb_requestReplace_changeMode); this.panel_requestReplace_startLine.Controls.Add(this.lb_editStartLine); this.panel_requestReplace_startLine.Controls.Add(this.tb_requestReplace_uri); this.panel_requestReplace_startLine.Controls.Add(this.cb_editRequestMethod); this.panel_requestReplace_startLine.Controls.Add(this.cb_editRequestEdition); this.panel_requestReplace_startLine.Dock = System.Windows.Forms.DockStyle.Top; this.panel_requestReplace_startLine.Location = new System.Drawing.Point(4, 3); this.panel_requestReplace_startLine.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.panel_requestReplace_startLine.Name = "panel_requestReplace_startLine"; this.panel_requestReplace_startLine.Size = new System.Drawing.Size(593, 33); this.panel_requestReplace_startLine.TabIndex = 17; // // pb_requestReplace_changeMode // this.pb_requestReplace_changeMode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_requestReplace_changeMode.BackColor = System.Drawing.Color.Transparent; this.pb_requestReplace_changeMode.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_requestReplace_changeMode.Image = ((System.Drawing.Image)(resources.GetObject("pb_requestReplace_changeMode.Image"))); this.pb_requestReplace_changeMode.Location = new System.Drawing.Point(567, 5); this.pb_requestReplace_changeMode.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_requestReplace_changeMode.Name = "pb_requestReplace_changeMode"; this.pb_requestReplace_changeMode.Size = new System.Drawing.Size(23, 22); this.pb_requestReplace_changeMode.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_requestReplace_changeMode.TabIndex = 38; this.pb_requestReplace_changeMode.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_requestReplace_changeMode, "change request replace"); this.pb_requestReplace_changeMode.Click += new System.EventHandler(this.pb_requestReplace_changeMode_Click); this.pb_requestReplace_changeMode.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pb_requestReplace_changeMode.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // lb_editStartLine // this.lb_editStartLine.AutoSize = true; this.lb_editStartLine.Location = new System.Drawing.Point(4, 9); this.lb_editStartLine.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.lb_editStartLine.Name = "lb_editStartLine"; this.lb_editStartLine.Size = new System.Drawing.Size(71, 12); this.lb_editStartLine.TabIndex = 13; this.lb_editStartLine.Text = "Start Line:"; // // tb_requestReplace_uri // this.tb_requestReplace_uri.Location = new System.Drawing.Point(160, 6); this.tb_requestReplace_uri.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tb_requestReplace_uri.Name = "tb_requestReplace_uri"; this.tb_requestReplace_uri.Size = new System.Drawing.Size(322, 21); this.tb_requestReplace_uri.TabIndex = 16; this.tb_requestReplace_uri.WatermarkText = null; // // cb_editRequestMethod // this.cb_editRequestMethod.FormattingEnabled = true; this.cb_editRequestMethod.Items.AddRange(new object[] { "GET", "POST", "HEAD", "PUT", "DELETE", "CONNECT", "OPTIONS", "TRACE"}); this.cb_editRequestMethod.Location = new System.Drawing.Point(76, 6); this.cb_editRequestMethod.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.cb_editRequestMethod.Name = "cb_editRequestMethod"; this.cb_editRequestMethod.Size = new System.Drawing.Size(78, 20); this.cb_editRequestMethod.TabIndex = 14; // // cb_editRequestEdition // this.cb_editRequestEdition.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.cb_editRequestEdition.FormattingEnabled = true; this.cb_editRequestEdition.Items.AddRange(new object[] { "HTTP/1.1", "HTTP/0.9", "HTTP/1.0", "HTTP/1.2", "HTTP/2.0"}); this.cb_editRequestEdition.Location = new System.Drawing.Point(485, 6); this.cb_editRequestEdition.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.cb_editRequestEdition.Name = "cb_editRequestEdition"; this.cb_editRequestEdition.Size = new System.Drawing.Size(78, 20); this.cb_editRequestEdition.TabIndex = 15; // // tabPage_responseModific // this.tabPage_responseModific.Controls.Add(this.splitContainer_responseModific); this.tabPage_responseModific.ImageKey = "request_modific.png"; this.tabPage_responseModific.Location = new System.Drawing.Point(4, 23); this.tabPage_responseModific.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tabPage_responseModific.Name = "tabPage_responseModific"; this.tabPage_responseModific.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tabPage_responseModific.Size = new System.Drawing.Size(601, 302); this.tabPage_responseModific.TabIndex = 2; this.tabPage_responseModific.Text = "Response Modific"; this.tabPage_responseModific.UseVisualStyleBackColor = true; // // splitContainer_responseModific // this.splitContainer_responseModific.Dock = System.Windows.Forms.DockStyle.Fill; this.splitContainer_responseModific.Location = new System.Drawing.Point(4, 3); this.splitContainer_responseModific.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.splitContainer_responseModific.Name = "splitContainer_responseModific"; this.splitContainer_responseModific.Orientation = System.Windows.Forms.Orientation.Horizontal; // // splitContainer_responseModific.Panel1 // this.splitContainer_responseModific.Panel1.Controls.Add(this.groupBox_reponseHeadModific); // // splitContainer_responseModific.Panel2 // this.splitContainer_responseModific.Panel2.Controls.Add(this.groupBox_responseBodyModific); this.splitContainer_responseModific.Size = new System.Drawing.Size(593, 296); this.splitContainer_responseModific.SplitterDistance = 114; this.splitContainer_responseModific.TabIndex = 2; // // groupBox_reponseHeadModific // this.groupBox_reponseHeadModific.Controls.Add(this.responseAddHeads); this.groupBox_reponseHeadModific.Controls.Add(this.responseRemoveHeads); this.groupBox_reponseHeadModific.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox_reponseHeadModific.Location = new System.Drawing.Point(0, 0); this.groupBox_reponseHeadModific.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.groupBox_reponseHeadModific.Name = "groupBox_reponseHeadModific"; this.groupBox_reponseHeadModific.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); this.groupBox_reponseHeadModific.Size = new System.Drawing.Size(593, 114); this.groupBox_reponseHeadModific.TabIndex = 1; this.groupBox_reponseHeadModific.TabStop = false; this.groupBox_reponseHeadModific.Text = "Heads Modific"; // // responseAddHeads // this.responseAddHeads.ColumnHeaderName = "Add Head"; this.responseAddHeads.Dock = System.Windows.Forms.DockStyle.Right; this.responseAddHeads.IsItemUnique = false; this.responseAddHeads.IsKeyValue = true; this.responseAddHeads.Location = new System.Drawing.Point(279, 17); this.responseAddHeads.Margin = new System.Windows.Forms.Padding(6); this.responseAddHeads.Name = "responseAddHeads"; this.responseAddHeads.Size = new System.Drawing.Size(310, 94); this.responseAddHeads.SplitStr = ": "; this.responseAddHeads.TabIndex = 1; // // responseRemoveHeads // this.responseRemoveHeads.ColumnHeaderName = "Remove Head"; this.responseRemoveHeads.Dock = System.Windows.Forms.DockStyle.Left; this.responseRemoveHeads.IsItemUnique = false; this.responseRemoveHeads.IsKeyValue = false; this.responseRemoveHeads.Location = new System.Drawing.Point(4, 17); this.responseRemoveHeads.Margin = new System.Windows.Forms.Padding(6); this.responseRemoveHeads.Name = "responseRemoveHeads"; this.responseRemoveHeads.Size = new System.Drawing.Size(275, 94); this.responseRemoveHeads.SplitStr = ": "; this.responseRemoveHeads.TabIndex = 0; // // groupBox_responseBodyModific // this.groupBox_responseBodyModific.Controls.Add(this.panel3); this.groupBox_responseBodyModific.Controls.Add(this.panel4); this.groupBox_responseBodyModific.Dock = System.Windows.Forms.DockStyle.Fill; this.groupBox_responseBodyModific.Location = new System.Drawing.Point(0, 0); this.groupBox_responseBodyModific.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.groupBox_responseBodyModific.Name = "groupBox_responseBodyModific"; this.groupBox_responseBodyModific.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); this.groupBox_responseBodyModific.Size = new System.Drawing.Size(593, 178); this.groupBox_responseBodyModific.TabIndex = 2; this.groupBox_responseBodyModific.TabStop = false; this.groupBox_responseBodyModific.Text = "Body Modific"; // // panel3 // this.panel3.Controls.Add(this.rtb_respenseModific_body); this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; this.panel3.Location = new System.Drawing.Point(4, 50); this.panel3.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.panel3.Name = "panel3"; this.panel3.Size = new System.Drawing.Size(585, 125); this.panel3.TabIndex = 48; // // rtb_respenseModific_body // this.rtb_respenseModific_body.ContextMenuStrip = this.contextMenuStrip_AddFile; this.rtb_respenseModific_body.Dock = System.Windows.Forms.DockStyle.Fill; this.rtb_respenseModific_body.Location = new System.Drawing.Point(0, 0); this.rtb_respenseModific_body.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.rtb_respenseModific_body.Name = "rtb_respenseModific_body"; this.rtb_respenseModific_body.Size = new System.Drawing.Size(585, 125); this.rtb_respenseModific_body.TabIndex = 0; this.rtb_respenseModific_body.Text = ""; this.toolTip_forMainWindow.SetToolTip(this.rtb_respenseModific_body, "empty mean not change the response body"); // // panel4 // this.panel4.Controls.Add(this.tbe_ResponseBodyModific); this.panel4.Controls.Add(this.tb_responseModific_body); this.panel4.Controls.Add(this.label2); this.panel4.Dock = System.Windows.Forms.DockStyle.Top; this.panel4.Location = new System.Drawing.Point(4, 17); this.panel4.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.panel4.Name = "panel4"; this.panel4.Size = new System.Drawing.Size(585, 33); this.panel4.TabIndex = 47; // // tbe_ResponseBodyModific // this.tbe_ResponseBodyModific.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.tbe_ResponseBodyModific.BackColor = System.Drawing.SystemColors.Window; this.tbe_ResponseBodyModific.EditTextBox = this.tb_responseModific_body; this.tbe_ResponseBodyModific.Location = new System.Drawing.Point(561, 6); this.tbe_ResponseBodyModific.MainContainerControl = this; this.tbe_ResponseBodyModific.Margin = new System.Windows.Forms.Padding(6); this.tbe_ResponseBodyModific.Name = "tbe_ResponseBodyModific"; this.tbe_ResponseBodyModific.Size = new System.Drawing.Size(17, 17); this.tbe_ResponseBodyModific.TabIndex = 50; // // tb_responseModific_body // this.tb_responseModific_body.Location = new System.Drawing.Point(63, 5); this.tb_responseModific_body.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tb_responseModific_body.Name = "tb_responseModific_body"; this.tb_responseModific_body.Size = new System.Drawing.Size(519, 21); this.tb_responseModific_body.TabIndex = 47; this.toolTip_forMainWindow.SetToolTip(this.tb_responseModific_body, resources.GetString("tb_responseModific_body.ToolTip")); this.tb_responseModific_body.WatermarkText = "empty mean replace all body , start with \"\" mean regex replace,\"\" mea" + "n hex replace , \"\"mean change the character set"; this.tb_responseModific_body.Enter += new System.EventHandler(this.tb_Modific_body_Enter); this.tb_responseModific_body.Leave += new System.EventHandler(this.tb_Modific_body_Leave); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(10, 9); this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(47, 12); this.label2.TabIndex = 48; this.label2.Text = "Replace"; // // tabPage_responseReplace // this.tabPage_responseReplace.Controls.Add(this.rawResponseEdit); this.tabPage_responseReplace.ImageKey = "request_replace.png"; this.tabPage_responseReplace.Location = new System.Drawing.Point(4, 23); this.tabPage_responseReplace.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tabPage_responseReplace.Name = "tabPage_responseReplace"; this.tabPage_responseReplace.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3); this.tabPage_responseReplace.Size = new System.Drawing.Size(601, 302); this.tabPage_responseReplace.TabIndex = 3; this.tabPage_responseReplace.Text = "Response Replace"; this.tabPage_responseReplace.UseVisualStyleBackColor = true; // // rawResponseEdit // this.rawResponseEdit.Dock = System.Windows.Forms.DockStyle.Fill; this.rawResponseEdit.IsDirectRespons = false; this.rawResponseEdit.IsUseParameterData = false; this.rawResponseEdit.Location = new System.Drawing.Point(4, 3); this.rawResponseEdit.Margin = new System.Windows.Forms.Padding(6); this.rawResponseEdit.Name = "rawResponseEdit"; this.rawResponseEdit.Size = new System.Drawing.Size(593, 296); this.rawResponseEdit.TabIndex = 0; // // panel_modific_Contorl // this.panel_modific_Contorl.AllowDrop = true; this.panel_modific_Contorl.Controls.Add(this.pb_parameterSwitch); this.panel_modific_Contorl.Controls.Add(this.pb_protocolSwitch); this.panel_modific_Contorl.Controls.Add(this.pb_pickRule); this.panel_modific_Contorl.Controls.Add(this.lbl_ResponseLatency); this.panel_modific_Contorl.Controls.Add(this.pb_responseLatency); this.panel_modific_Contorl.Controls.Add(this.pb_ruleComfrim); this.panel_modific_Contorl.Controls.Add(this.pb_ruleCancel); this.panel_modific_Contorl.Controls.Add(this.menuStrip_quickRule); this.panel_modific_Contorl.Dock = System.Windows.Forms.DockStyle.Bottom; this.panel_modific_Contorl.Location = new System.Drawing.Point(0, 329); this.panel_modific_Contorl.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.panel_modific_Contorl.Name = "panel_modific_Contorl"; this.panel_modific_Contorl.Size = new System.Drawing.Size(609, 27); this.panel_modific_Contorl.TabIndex = 0; // // pb_parameterSwitch // this.pb_parameterSwitch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.pb_parameterSwitch.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_parameterSwitch.Image = global::FreeHttp.Properties.Resources.noParameter; this.pb_parameterSwitch.IsAutoChangeSwitchState = true; this.pb_parameterSwitch.Location = new System.Drawing.Point(512, 1); this.pb_parameterSwitch.Margin = new System.Windows.Forms.Padding(2); this.pb_parameterSwitch.Name = "pb_parameterSwitch"; this.pb_parameterSwitch.Size = new System.Drawing.Size(25, 25); this.pb_parameterSwitch.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pb_parameterSwitch.SwitchOffImage = global::FreeHttp.Properties.Resources.noParameter; this.pb_parameterSwitch.SwitchOnImage = global::FreeHttp.Properties.Resources.useParameter; this.pb_parameterSwitch.SwitchState = false; this.pb_parameterSwitch.TabIndex = 43; this.pb_parameterSwitch.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_parameterSwitch, "enable the parameter data"); // // pb_protocolSwitch // this.pb_protocolSwitch.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_protocolSwitch.Image = global::FreeHttp.Properties.Resources.httpEnable; this.pb_protocolSwitch.IsAutoChangeSwitchState = false; this.pb_protocolSwitch.Location = new System.Drawing.Point(0, 1); this.pb_protocolSwitch.Margin = new System.Windows.Forms.Padding(2); this.pb_protocolSwitch.Name = "pb_protocolSwitch"; this.pb_protocolSwitch.Size = new System.Drawing.Size(71, 23); this.pb_protocolSwitch.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pb_protocolSwitch.SwitchOffImage = global::FreeHttp.Properties.Resources.wsEnable; this.pb_protocolSwitch.SwitchOnImage = global::FreeHttp.Properties.Resources.httpEnable; this.pb_protocolSwitch.SwitchState = true; this.pb_protocolSwitch.TabIndex = 1; this.pb_protocolSwitch.TabStop = false; this.pb_protocolSwitch.Click += new System.EventHandler(this.pb_protocolSwitch_Click); // // pb_pickRule // this.pb_pickRule.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.pb_pickRule.BackColor = System.Drawing.Color.Transparent; this.pb_pickRule.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_pickRule.Image = ((System.Drawing.Image)(resources.GetObject("pb_pickRule.Image"))); this.pb_pickRule.Location = new System.Drawing.Point(486, 1); this.pb_pickRule.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_pickRule.Name = "pb_pickRule"; this.pb_pickRule.Size = new System.Drawing.Size(25, 25); this.pb_pickRule.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_pickRule.TabIndex = 42; this.pb_pickRule.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_pickRule, "set parameter pick info"); this.pb_pickRule.Click += new System.EventHandler(this.pb_pickRule_Click); this.pb_pickRule.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pb_pickRule.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // lbl_ResponseLatency // this.lbl_ResponseLatency.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.lbl_ResponseLatency.AutoSize = true; this.lbl_ResponseLatency.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192))))); this.lbl_ResponseLatency.Location = new System.Drawing.Point(463, 8); this.lbl_ResponseLatency.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.lbl_ResponseLatency.Name = "lbl_ResponseLatency"; this.lbl_ResponseLatency.Size = new System.Drawing.Size(11, 12); this.lbl_ResponseLatency.TabIndex = 41; this.lbl_ResponseLatency.TabStop = true; this.lbl_ResponseLatency.Text = "0"; this.toolTip_forMainWindow.SetToolTip(this.lbl_ResponseLatency, "set response latency"); this.lbl_ResponseLatency.Click += new System.EventHandler(this.pb_responseLatency_Click); // // pb_responseLatency // this.pb_responseLatency.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.pb_responseLatency.BackColor = System.Drawing.Color.Transparent; this.pb_responseLatency.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_responseLatency.Image = ((System.Drawing.Image)(resources.GetObject("pb_responseLatency.Image"))); this.pb_responseLatency.Location = new System.Drawing.Point(460, 1); this.pb_responseLatency.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_responseLatency.Name = "pb_responseLatency"; this.pb_responseLatency.Size = new System.Drawing.Size(25, 25); this.pb_responseLatency.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_responseLatency.TabIndex = 39; this.pb_responseLatency.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_responseLatency, "set response latency"); this.pb_responseLatency.Click += new System.EventHandler(this.pb_responseLatency_Click); // // pb_ruleComfrim // this.pb_ruleComfrim.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.pb_ruleComfrim.BackColor = System.Drawing.Color.Transparent; this.pb_ruleComfrim.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_ruleComfrim.Image = ((System.Drawing.Image)(resources.GetObject("pb_ruleComfrim.Image"))); this.pb_ruleComfrim.Location = new System.Drawing.Point(581, 1); this.pb_ruleComfrim.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_ruleComfrim.Name = "pb_ruleComfrim"; this.pb_ruleComfrim.Size = new System.Drawing.Size(25, 25); this.pb_ruleComfrim.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_ruleComfrim.TabIndex = 37; this.pb_ruleComfrim.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_ruleComfrim, "affirm your modific rule"); this.pb_ruleComfrim.Click += new System.EventHandler(this.pb_ruleComfrim_Click); this.pb_ruleComfrim.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pb_ruleComfrim.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // pb_ruleCancel // this.pb_ruleCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.pb_ruleCancel.BackColor = System.Drawing.Color.Transparent; this.pb_ruleCancel.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_ruleCancel.Image = global::FreeHttp.Properties.Resources.cancel; this.pb_ruleCancel.Location = new System.Drawing.Point(555, 1); this.pb_ruleCancel.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.pb_ruleCancel.Name = "pb_ruleCancel"; this.pb_ruleCancel.Size = new System.Drawing.Size(25, 25); this.pb_ruleCancel.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_ruleCancel.TabIndex = 38; this.pb_ruleCancel.TabStop = false; this.toolTip_forMainWindow.SetToolTip(this.pb_ruleCancel, "clear your rule edit info"); this.pb_ruleCancel.Click += new System.EventHandler(this.pb_ruleCancel_Click); this.pb_ruleCancel.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pb_ruleCancel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // menuStrip_quickRule // this.menuStrip_quickRule.Dock = System.Windows.Forms.DockStyle.None; this.menuStrip_quickRule.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.quickRuleToolStripMenuItem, this.modificToolToolStripMenuItem, this.helpToolStripMenuItem}); this.menuStrip_quickRule.Location = new System.Drawing.Point(73, 0); this.menuStrip_quickRule.Name = "menuStrip_quickRule"; this.menuStrip_quickRule.Padding = new System.Windows.Forms.Padding(0, 3, 0, 0); this.menuStrip_quickRule.Size = new System.Drawing.Size(223, 24); this.menuStrip_quickRule.TabIndex = 2; this.menuStrip_quickRule.Text = "menuStrip1"; // // quickRuleToolStripMenuItem // this.quickRuleToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.disableCacheToolStripMenuItem, this.addCookieToolStripMenuItem, this.deleteCookieToolStripMenuItem, this.setClientCookieToolStripMenuItem, this.copySessionCookiesToolStripMenuItem, this.removeSessionCookiesToolStripMenuItem, this.addUserAgentToolStripMenuItem, this.changeSessionEncodingToolStripMenuItem}); this.quickRuleToolStripMenuItem.ForeColor = System.Drawing.SystemColors.HotTrack; this.quickRuleToolStripMenuItem.Name = "quickRuleToolStripMenuItem"; this.quickRuleToolStripMenuItem.Padding = new System.Windows.Forms.Padding(2, 0, 4, 0); this.quickRuleToolStripMenuItem.Size = new System.Drawing.Size(80, 21); this.quickRuleToolStripMenuItem.Text = "Quick Rule"; // // disableCacheToolStripMenuItem // this.disableCacheToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("disableCacheToolStripMenuItem.Image"))); this.disableCacheToolStripMenuItem.Name = "disableCacheToolStripMenuItem"; this.disableCacheToolStripMenuItem.Size = new System.Drawing.Size(223, 22); this.disableCacheToolStripMenuItem.Text = "disable cache"; this.disableCacheToolStripMenuItem.Click += new System.EventHandler(this.disableCacheToolStripMenuItem_Click); // // addCookieToolStripMenuItem // this.addCookieToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("addCookieToolStripMenuItem.Image"))); this.addCookieToolStripMenuItem.Name = "addCookieToolStripMenuItem"; this.addCookieToolStripMenuItem.Size = new System.Drawing.Size(223, 22); this.addCookieToolStripMenuItem.Text = "add cookie"; this.addCookieToolStripMenuItem.Click += new System.EventHandler(this.addCookieToolStripMenuItem_Click); // // deleteCookieToolStripMenuItem // this.deleteCookieToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("deleteCookieToolStripMenuItem.Image"))); this.deleteCookieToolStripMenuItem.Name = "deleteCookieToolStripMenuItem"; this.deleteCookieToolStripMenuItem.Size = new System.Drawing.Size(223, 22); this.deleteCookieToolStripMenuItem.Text = "delete cookie"; this.deleteCookieToolStripMenuItem.Click += new System.EventHandler(this.deleteCookieToolStripMenuItem_Click); // // setClientCookieToolStripMenuItem // this.setClientCookieToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("setClientCookieToolStripMenuItem.Image"))); this.setClientCookieToolStripMenuItem.Name = "setClientCookieToolStripMenuItem"; this.setClientCookieToolStripMenuItem.Size = new System.Drawing.Size(223, 22); this.setClientCookieToolStripMenuItem.Text = "set client cookie"; this.setClientCookieToolStripMenuItem.Click += new System.EventHandler(this.setClientCookieToolStripMenuItem_Click); // // copySessionCookiesToolStripMenuItem // this.copySessionCookiesToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("copySessionCookiesToolStripMenuItem.Image"))); this.copySessionCookiesToolStripMenuItem.Name = "copySessionCookiesToolStripMenuItem"; this.copySessionCookiesToolStripMenuItem.Size = new System.Drawing.Size(223, 22); this.copySessionCookiesToolStripMenuItem.Text = "copy session cookies"; this.copySessionCookiesToolStripMenuItem.Click += new System.EventHandler(this.copySessionCookiesToolStripMenuItem_Click); // // removeSessionCookiesToolStripMenuItem // this.removeSessionCookiesToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("removeSessionCookiesToolStripMenuItem.Image"))); this.removeSessionCookiesToolStripMenuItem.Name = "removeSessionCookiesToolStripMenuItem"; this.removeSessionCookiesToolStripMenuItem.Size = new System.Drawing.Size(223, 22); this.removeSessionCookiesToolStripMenuItem.Text = "remove session cookies"; this.removeSessionCookiesToolStripMenuItem.Click += new System.EventHandler(this.removeSessionCookiesToolStripMenuItem_Click); // // addUserAgentToolStripMenuItem // this.addUserAgentToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("addUserAgentToolStripMenuItem.Image"))); this.addUserAgentToolStripMenuItem.Name = "addUserAgentToolStripMenuItem"; this.addUserAgentToolStripMenuItem.Size = new System.Drawing.Size(223, 22); this.addUserAgentToolStripMenuItem.Text = "add UserAgent"; this.addUserAgentToolStripMenuItem.Click += new System.EventHandler(this.addUserAgentToolStripMenuItem_Click); // // changeSessionEncodingToolStripMenuItem // this.changeSessionEncodingToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("changeSessionEncodingToolStripMenuItem.Image"))); this.changeSessionEncodingToolStripMenuItem.Name = "changeSessionEncodingToolStripMenuItem"; this.changeSessionEncodingToolStripMenuItem.Size = new System.Drawing.Size(223, 22); this.changeSessionEncodingToolStripMenuItem.Text = "change session encoding"; this.changeSessionEncodingToolStripMenuItem.Click += new System.EventHandler(this.ChangeSessionEncodingToolStripMenuItem_Click); // // modificToolToolStripMenuItem // this.modificToolToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.independentWindowToolStripMenuItem, this.showSelectedSessionStreamToolStripMenuItem, this.parameterDataManageToolStripMenuItem, this.httpTamperSettingToolStripMenuItem, this.loadingRemoteRuleToolStripMenuItem}); this.modificToolToolStripMenuItem.ForeColor = System.Drawing.SystemColors.HotTrack; this.modificToolToolStripMenuItem.Name = "modificToolToolStripMenuItem"; this.modificToolToolStripMenuItem.Size = new System.Drawing.Size(94, 21); this.modificToolToolStripMenuItem.Text = "Modific Tool"; // // independentWindowToolStripMenuItem // this.independentWindowToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("independentWindowToolStripMenuItem.Image"))); this.independentWindowToolStripMenuItem.Name = "independentWindowToolStripMenuItem"; this.independentWindowToolStripMenuItem.Size = new System.Drawing.Size(249, 22); this.independentWindowToolStripMenuItem.Text = "independent window"; this.independentWindowToolStripMenuItem.Click += new System.EventHandler(this.independentWindowToolStripMenuItem_Click); // // showSelectedSessionStreamToolStripMenuItem // this.showSelectedSessionStreamToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("showSelectedSessionStreamToolStripMenuItem.Image"))); this.showSelectedSessionStreamToolStripMenuItem.Name = "showSelectedSessionStreamToolStripMenuItem"; this.showSelectedSessionStreamToolStripMenuItem.Size = new System.Drawing.Size(249, 22); this.showSelectedSessionStreamToolStripMenuItem.Text = "show selected session stream"; this.showSelectedSessionStreamToolStripMenuItem.Click += new System.EventHandler(this.showSelectedSessionStreamToolStripMenuItem_Click); // // parameterDataManageToolStripMenuItem // this.parameterDataManageToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("parameterDataManageToolStripMenuItem.Image"))); this.parameterDataManageToolStripMenuItem.Name = "parameterDataManageToolStripMenuItem"; this.parameterDataManageToolStripMenuItem.Size = new System.Drawing.Size(249, 22); this.parameterDataManageToolStripMenuItem.Text = "parameter data manage"; this.parameterDataManageToolStripMenuItem.Click += new System.EventHandler(this.parameterDataManageToolStripMenuItem_Click); // // httpTamperSettingToolStripMenuItem // this.httpTamperSettingToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("httpTamperSettingToolStripMenuItem.Image"))); this.httpTamperSettingToolStripMenuItem.Name = "httpTamperSettingToolStripMenuItem"; this.httpTamperSettingToolStripMenuItem.Size = new System.Drawing.Size(249, 22); this.httpTamperSettingToolStripMenuItem.Text = "http tamper setting"; this.httpTamperSettingToolStripMenuItem.Click += new System.EventHandler(this.httpTamperSettingToolStripMenuItem_Click); // // loadingRemoteRuleToolStripMenuItem // this.loadingRemoteRuleToolStripMenuItem.Image = global::FreeHttp.Properties.Resources.cloud; this.loadingRemoteRuleToolStripMenuItem.Name = "loadingRemoteRuleToolStripMenuItem"; this.loadingRemoteRuleToolStripMenuItem.Size = new System.Drawing.Size(249, 22); this.loadingRemoteRuleToolStripMenuItem.Text = "loading remote rule"; this.loadingRemoteRuleToolStripMenuItem.Click += new System.EventHandler(this.loadingRemoteRuleToolStripMenuItem_Click); // // helpToolStripMenuItem // this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.feedbackToolStripMenuItem, this.codeInGithubToolStripMenuItem, this.documentationToolStripMenuItem}); this.helpToolStripMenuItem.ForeColor = System.Drawing.SystemColors.HotTrack; this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; this.helpToolStripMenuItem.Size = new System.Drawing.Size(47, 21); this.helpToolStripMenuItem.Text = "Help"; // // feedbackToolStripMenuItem // this.feedbackToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("feedbackToolStripMenuItem.Image"))); this.feedbackToolStripMenuItem.Name = "feedbackToolStripMenuItem"; this.feedbackToolStripMenuItem.Size = new System.Drawing.Size(163, 22); this.feedbackToolStripMenuItem.Text = "feedback"; this.feedbackToolStripMenuItem.Click += new System.EventHandler(this.FeedbackToolStripMenuItem_Click); // // codeInGithubToolStripMenuItem // this.codeInGithubToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("codeInGithubToolStripMenuItem.Image"))); this.codeInGithubToolStripMenuItem.Name = "codeInGithubToolStripMenuItem"; this.codeInGithubToolStripMenuItem.Size = new System.Drawing.Size(163, 22); this.codeInGithubToolStripMenuItem.Text = "code in github"; this.codeInGithubToolStripMenuItem.Click += new System.EventHandler(this.CodeInGithubToolStripMenuItem_Click); // // documentationToolStripMenuItem // this.documentationToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("documentationToolStripMenuItem.Image"))); this.documentationToolStripMenuItem.Name = "documentationToolStripMenuItem"; this.documentationToolStripMenuItem.Size = new System.Drawing.Size(163, 22); this.documentationToolStripMenuItem.Text = "documentation"; this.documentationToolStripMenuItem.Click += new System.EventHandler(this.DocumentationToolStripMenuItem_Click); // // tbe_urlFilter // this.tbe_urlFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.tbe_urlFilter.BackColor = System.Drawing.SystemColors.Window; this.tbe_urlFilter.EditTextBox = this.tb_urlFilter; this.tbe_urlFilter.Location = new System.Drawing.Point(430, 19); this.tbe_urlFilter.MainContainerControl = this; this.tbe_urlFilter.Margin = new System.Windows.Forms.Padding(6); this.tbe_urlFilter.Name = "tbe_urlFilter"; this.tbe_urlFilter.Size = new System.Drawing.Size(17, 17); this.tbe_urlFilter.TabIndex = 50; // // lv_requestRuleList // this.lv_requestRuleList.AllowDrop = true; this.lv_requestRuleList.CheckBoxes = true; this.lv_requestRuleList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeader1, this.columnHeader_requstRule}); this.lv_requestRuleList.ContextMenuStrip = this.contextMenu_ruleList; this.lv_requestRuleList.Cursor = System.Windows.Forms.Cursors.Default; this.lv_requestRuleList.Dock = System.Windows.Forms.DockStyle.Fill; this.lv_requestRuleList.FullRowSelect = true; this.lv_requestRuleList.HideSelection = false; this.lv_requestRuleList.Location = new System.Drawing.Point(0, 0); this.lv_requestRuleList.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.lv_requestRuleList.Name = "lv_requestRuleList"; this.lv_requestRuleList.ShowItemToolTips = true; this.lv_requestRuleList.Size = new System.Drawing.Size(353, 201); this.lv_requestRuleList.SmallImageList = this.imageList_forTab; this.lv_requestRuleList.TabIndex = 0; this.lv_requestRuleList.UseCompatibleStateImageBehavior = false; this.lv_requestRuleList.View = System.Windows.Forms.View.Details; this.lv_requestRuleList.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.lv_RuleList_ItemChecked); this.lv_requestRuleList.ItemMouseHover += new System.Windows.Forms.ListViewItemMouseHoverEventHandler(this.lv_ruleList_ItemMouseHover); this.lv_requestRuleList.DoubleClick += new System.EventHandler(this.lv_RuleList_DoubleClick); this.lv_requestRuleList.MouseLeave += new System.EventHandler(this.lv_ruleList_MouseLeave); // // columnHeader1 // this.columnHeader1.Text = "ID"; this.columnHeader1.Width = 54; // // columnHeader_requstRule // this.columnHeader_requstRule.Text = "Request Rule"; this.columnHeader_requstRule.Width = 280; // // lv_responseRuleList // this.lv_responseRuleList.AllowDrop = true; this.lv_responseRuleList.CheckBoxes = true; this.lv_responseRuleList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeader3, this.columnHeader_responseRule}); this.lv_responseRuleList.ContextMenuStrip = this.contextMenu_ruleList; this.lv_responseRuleList.Dock = System.Windows.Forms.DockStyle.Fill; this.lv_responseRuleList.FullRowSelect = true; this.lv_responseRuleList.HideSelection = false; this.lv_responseRuleList.Location = new System.Drawing.Point(0, 0); this.lv_responseRuleList.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.lv_responseRuleList.Name = "lv_responseRuleList"; this.lv_responseRuleList.ShowItemToolTips = true; this.lv_responseRuleList.Size = new System.Drawing.Size(353, 347); this.lv_responseRuleList.SmallImageList = this.imageList_forTab; this.lv_responseRuleList.TabIndex = 1; this.lv_responseRuleList.UseCompatibleStateImageBehavior = false; this.lv_responseRuleList.View = System.Windows.Forms.View.Details; this.lv_responseRuleList.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.lv_RuleList_ItemChecked); this.lv_responseRuleList.ItemMouseHover += new System.Windows.Forms.ListViewItemMouseHoverEventHandler(this.lv_ruleList_ItemMouseHover); this.lv_responseRuleList.DoubleClick += new System.EventHandler(this.lv_RuleList_DoubleClick); this.lv_responseRuleList.MouseLeave += new System.EventHandler(this.lv_ruleList_MouseLeave); // // columnHeader3 // this.columnHeader3.Text = "ID"; this.columnHeader3.Width = 54; // // columnHeader_responseRule // this.columnHeader_responseRule.Text = "Response Rule"; this.columnHeader_responseRule.Width = 280; // // FreeHttpWindow // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.splitContainer_main); this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.Name = "FreeHttpWindow"; this.Size = new System.Drawing.Size(966, 552); this.Load += new System.EventHandler(this.FreeHttpWindow_Load); this.contextMenuStrip_AddFile.ResumeLayout(false); this.splitContainer_main.Panel1.ResumeLayout(false); this.splitContainer_main.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer_main)).EndInit(); this.splitContainer_main.ResumeLayout(false); this.splitContainer_httpEditInfo.Panel1.ResumeLayout(false); this.splitContainer_httpEditInfo.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer_httpEditInfo)).EndInit(); this.splitContainer_httpEditInfo.ResumeLayout(false); this.groupBox_urlFilter.ResumeLayout(false); this.groupBox_urlFilter.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_editHttpFilter)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_editRuleMode)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_getSession)).EndInit(); this.splitContainer_httpControl.Panel1.ResumeLayout(false); this.splitContainer_httpControl.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer_httpControl)).EndInit(); this.splitContainer_httpControl.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pb_remoteRule)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_addRequestRule)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_removeRequestRule)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_requestRuleSwitch)).EndInit(); this.contextMenu_ruleList.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pb_addResponseRule)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_removeResponseRule)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_responseRuleSwitch)).EndInit(); this.contextMenuStrip_addParameter.ResumeLayout(false); this.panel_modific.ResumeLayout(false); this.tabControl_Modific.ResumeLayout(false); this.tabPage_requestModific.ResumeLayout(false); this.splitContainer_requestModific.Panel1.ResumeLayout(false); this.splitContainer_requestModific.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer_requestModific)).EndInit(); this.splitContainer_requestModific.ResumeLayout(false); this.groupBox_headsModific.ResumeLayout(false); this.groupBox_bodyModific.ResumeLayout(false); this.panel2.ResumeLayout(false); this.panel1.ResumeLayout(false); this.panel1.PerformLayout(); this.groupBox_uriModific.ResumeLayout(false); this.groupBox_uriModific.PerformLayout(); this.tabPage_requestReplace.ResumeLayout(false); this.splitContainer_requestReplace.Panel1.ResumeLayout(false); this.splitContainer_requestReplace.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer_requestReplace)).EndInit(); this.splitContainer_requestReplace.ResumeLayout(false); this.panel_requestReplace_startLine.ResumeLayout(false); this.panel_requestReplace_startLine.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pb_requestReplace_changeMode)).EndInit(); this.tabPage_responseModific.ResumeLayout(false); this.splitContainer_responseModific.Panel1.ResumeLayout(false); this.splitContainer_responseModific.Panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.splitContainer_responseModific)).EndInit(); this.splitContainer_responseModific.ResumeLayout(false); this.groupBox_reponseHeadModific.ResumeLayout(false); this.groupBox_responseBodyModific.ResumeLayout(false); this.panel3.ResumeLayout(false); this.panel4.ResumeLayout(false); this.panel4.PerformLayout(); this.tabPage_responseReplace.ResumeLayout(false); this.panel_modific_Contorl.ResumeLayout(false); this.panel_modific_Contorl.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pb_parameterSwitch)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_protocolSwitch)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_pickRule)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_responseLatency)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_ruleComfrim)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_ruleCancel)).EndInit(); this.menuStrip_quickRule.ResumeLayout(false); this.menuStrip_quickRule.PerformLayout(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.SplitContainer splitContainer_main; private System.Windows.Forms.TabControl tabControl_Modific; private System.Windows.Forms.TabPage tabPage_requestModific; private System.Windows.Forms.TabPage tabPage_requestReplace; private System.Windows.Forms.TabPage tabPage_responseModific; private System.Windows.Forms.TabPage tabPage_responseReplace; private System.Windows.Forms.SplitContainer splitContainer_httpControl; private MyListView lv_requestRuleList; private System.Windows.Forms.ColumnHeader columnHeader1; private System.Windows.Forms.ColumnHeader columnHeader_requstRule; private MyListView lv_responseRuleList; private System.Windows.Forms.ColumnHeader columnHeader3; private System.Windows.Forms.ColumnHeader columnHeader_responseRule; private System.Windows.Forms.GroupBox groupBox_urlFilter; private System.Windows.Forms.ComboBox cb_macthMode; private System.Windows.Forms.TextBox tb_urlFilter; private System.Windows.Forms.GroupBox groupBox_bodyModific; private System.Windows.Forms.GroupBox groupBox_headsModific; private System.Windows.Forms.GroupBox groupBox_uriModific; private System.Windows.Forms.PictureBox pb_ruleComfrim; private WatermakTextBox tb_requestModific_uriModificKey; private System.Windows.Forms.TextBox tb_requestModific_uriModificValue; private System.Windows.Forms.Label label1; private WatermakTextBox tb_requestModific_body; private EditListView requestRemoveHeads; private EditListView requestAddHeads; private System.Windows.Forms.SplitContainer splitContainer_requestModific; private MyPanel panel1; private MyPanel panel_modific_Contorl; private MyPanel panel2; private System.Windows.Forms.RichTextBox rtb_requestModific_body; private System.Windows.Forms.PictureBox pb_getSession; private System.Windows.Forms.PictureBox pictureBox_editRuleMode; private MyPanel panel_modific; private System.Windows.Forms.ComboBox cb_editRequestEdition; private System.Windows.Forms.ComboBox cb_editRequestMethod; private System.Windows.Forms.Label lb_editStartLine; private System.Windows.Forms.SplitContainer splitContainer_requestReplace; private MyPanel panel_requestReplace_startLine; private EditListView elv_requsetReplace; private System.Windows.Forms.PictureBox pb_requestReplace_changeMode; private System.Windows.Forms.RichTextBox rtb_requestRaw; private System.Windows.Forms.SplitContainer splitContainer_responseModific; private System.Windows.Forms.GroupBox groupBox_reponseHeadModific; private EditListView responseAddHeads; private System.Windows.Forms.GroupBox groupBox_responseBodyModific; private MyPanel panel3; private System.Windows.Forms.RichTextBox rtb_respenseModific_body; private MyPanel panel4; private WatermakTextBox tb_responseModific_body; private System.Windows.Forms.Label label2; private RawResponseEdit rawResponseEdit; private System.Windows.Forms.PictureBox pb_requestRuleSwitch; private System.Windows.Forms.PictureBox pb_responseRuleSwitch; private System.Windows.Forms.PictureBox pb_addRequestRule; private System.Windows.Forms.PictureBox pb_removeRequestRule; private System.Windows.Forms.PictureBox pb_addResponseRule; private System.Windows.Forms.PictureBox pb_removeResponseRule; private System.Windows.Forms.ContextMenuStrip contextMenuStrip_AddFile; private System.Windows.Forms.ToolStripMenuItem addFileToolStripMenuItem; private System.Windows.Forms.OpenFileDialog openFileDialog_addFIle; private System.Windows.Forms.RichTextBox rtb_requsetReplace_body; private EditListView responseRemoveHeads; private WatermakTextBox tb_requestReplace_uri; private System.Windows.Forms.Label lb_editRuleMode; private System.Windows.Forms.SplitContainer splitContainer_httpEditInfo; private System.Windows.Forms.RichTextBox rtb_MesInfo; private System.Windows.Forms.ContextMenuStrip contextMenu_ruleList; private System.Windows.Forms.ToolStripMenuItem removeSelectedRuleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem removeAllRuleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem enableAllRuleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem unableAllRuleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem enableThisRuleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem editThisRuleToolStripMenuItem; private System.Windows.Forms.PictureBox pb_ruleCancel; private System.Windows.Forms.MenuStrip menuStrip_quickRule; private System.Windows.Forms.ToolStripMenuItem quickRuleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem disableCacheToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem addCookieToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem setClientCookieToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem modificToolToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem showSelectedSessionStreamToolStripMenuItem; private System.Windows.Forms.ToolTip toolTip_forMainWindow; private System.Windows.Forms.ToolStripMenuItem addUserAgentToolStripMenuItem; private TextBoxEditer tbe_RequestBodyModific; private TextBoxEditer tbe_ResponseBodyModific; private System.Windows.Forms.ToolStripMenuItem deleteCookieToolStripMenuItem; private System.Windows.Forms.PictureBox pb_responseLatency; private System.Windows.Forms.LinkLabel lbl_ResponseLatency; private TextBoxEditer tbe_urlFilter; private System.Windows.Forms.ToolStripMenuItem httpTamperSettingToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem copySessionCookiesToolStripMenuItem; private System.Windows.Forms.PictureBox pictureBox_editHttpFilter; private System.Windows.Forms.ToolStripMenuItem parameterDataManageToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem antoContentLengthToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem keyValueToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem parameterToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem dataSouceToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator_addAndCheck; private System.Windows.Forms.ContextMenuStrip contextMenuStrip_addParameter; private System.Windows.Forms.ToolStripMenuItem currentValueToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem nextValueToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem previousValueToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem addParameterDataToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem editDataToolStripMenuItem; private System.Windows.Forms.PictureBox pb_pickRule; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; private System.Windows.Forms.ToolStripMenuItem removeSessionCookiesToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem feedbackToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem codeInGithubToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem documentationToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem changeSessionEncodingToolStripMenuItem; private MySwitchPictureButton pb_protocolSwitch; private MySwitchPictureButton pb_parameterSwitch; internal System.Windows.Forms.ToolStripMenuItem independentWindowToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem loadingRemoteRuleToolStripMenuItem; internal System.Windows.Forms.ImageList imageList_forTab; private System.Windows.Forms.ToolStripMenuItem copySelectedRuleToolStripMenuItem; private System.Windows.Forms.PictureBox pb_remoteRule; private System.Windows.Forms.ToolStripMenuItem groupToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem addToNewGroupToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem moveToGroupToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem deleteThisGroupToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem enableThisGroupToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem unableThisGroupToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem renameThisGroupToolStripMenuItem; } } ================================================ FILE: FreeHttpControl/FreeHttpWindow.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using FreeHttp.HttpHelper; using FreeHttp.AutoTest.RunTimeStaticData; using FreeHttp.FiddlerHelper; using FreeHttp.AutoTest.ParameterizationPick; using static FreeHttp.WebService.RemoteRuleService; using FreeHttp.WebService; using FreeHttp.WebService.DataModel; /******************************************************************************* * Copyright (c) 2018 lulianqi * All rights reserved. * * 文件名称: * 内容摘要: mycllq@hotmail.com * * 历史记录: * 日 期: 20181103 创建人: lulianqi [mycllq@hotmail.com] * 描 述: 创建 * * 历史记录: * 日 期: 修改: * 描 述: *******************************************************************************/ namespace FreeHttp.FreeHttpControl { public partial class FreeHttpWindow : UserControl { /// /// Http modific mode /// public enum RuleEditMode { NewRuleMode, EditRequsetRule, EditResponseRule } public enum GetSessionAction { ShowShowResponse, SetCookies, DeleteCookies } public class GetSessionRawDataEventArgs : EventArgs { public GetSessionAction SessionAction { get; set; } public GetSessionRawDataEventArgs(GetSessionAction sessionAction) { SessionAction = sessionAction; } } public class GetSessionEventArgs { public bool IsGetSuccess { get; set; } = false; public String Uri { get; set; } public List> RequestHeads { get; set; } public String RequestEntity { get; set; } public List> ResponseHeads { get; set; } public String ResponseEntity { get; set; } public bool IsGetEntity { get; private set; } = false; public GetSessionEventArgs(bool isGetEntity) { IsGetEntity = isGetEntity; } } public class GetSessionSeekHeadEventArgs : EventArgs { public string SeekUri { get; set; } public KeyValuePair ResquestHead { get; set; } public KeyValuePair ResponseHead { get; set; } public GetSessionSeekHeadEventArgs(KeyValuePair resquestHead , KeyValuePair responseHead) { ResquestHead = resquestHead; ResponseHead = responseHead; } } public delegate void GetSessionRawDataEventHandler(object sender, GetSessionRawDataEventArgs e); //fiddlerModificHttpRuleCollection不保持最新数据集合,仅保持最后一次InitializeConfigInfo的rule数据关系 private FiddlerModificHttpRuleCollection fiddlerModificHttpRuleCollection; private bool isSetResponseLatencyEable; private bool isLoadFreeHttpWindowUserControl = false; private PictureBox ShowRuleInfo_pb = new PictureBox() { Cursor = Cursors.Hand , SizeMode = PictureBoxSizeMode.StretchImage }; private List nowRuleInfoWindowList = new List(); public FreeHttpWindow() { InitializeComponent(); MyInitializeComponent(); //this.DoubleBuffered = true; SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); UpdateStyles(); } private void MyInitializeComponent() { ShowRuleInfo_pb.Image = Resources.MyResource.show; ShowRuleInfo_pb.MouseLeave += pictureBox_MouseLeave; ShowRuleInfo_pb.MouseMove += pictureBox_MouseMove; ShowRuleInfo_pb.Click += ShowRuleInfo_pb_Click; } /// /// updata reference relationship(ActuatorStaticDataCollection 与 HttpRule 这这里需要重建引用关系) /// /// /// /// /// private void InitializeConfigInfo(FiddlerModificHttpRuleCollection yourRuleCollection, FiddlerModificSettingInfo yourModifcSettingInfo, ActuatorStaticDataCollection yourStaticDataCollection, FiddlerRuleGroup yourFiddlerRuleGroup) { fiddlerModificHttpRuleCollection = yourRuleCollection; ModificSettingInfo = yourModifcSettingInfo; if (ModificSettingInfo != null) ModificSettingInfo.IsSyncTamperRule = true; if (ModificSettingInfo != null && ModificSettingInfo.UserToken != null) UserComputerInfo.UserToken = ModificSettingInfo.UserToken; StaticDataCollection = yourStaticDataCollection; ModificRuleGroup = yourFiddlerRuleGroup; if (fiddlerModificHttpRuleCollection != null && StaticDataCollection != null) { foreach (var fr in fiddlerModificHttpRuleCollection.ResponseRuleList) { fr.ActuatorStaticDataController = new FiddlerActuatorStaticDataCollectionController(StaticDataCollection); if (fr.IsRawReplace) { if (fr.HttpRawResponse.ParameterizationContent == null) { fr.HttpRawResponse.ParameterizationContent = new AutoTest.ParameterizationContent.CaseParameterizationContent(fr.HttpRawResponse.OriginSting); } } fr.SetHasParameter(fr.IsHasParameter, StaticDataCollection); } foreach (var fr in fiddlerModificHttpRuleCollection.RequestRuleList) { if (fr.IsRawReplace) { if (fr.HttpRawRequest.ParameterizationContent == null) { fr.HttpRawRequest.ParameterizationContent = new AutoTest.ParameterizationContent.CaseParameterizationContent(fr.HttpRawRequest.OriginSting); } } fr.SetHasParameter(fr.IsHasParameter, StaticDataCollection); } } } /// /// FreeHttpWindow /// /// the history rule public FreeHttpWindow(FiddlerModificHttpRuleCollection yourRuleCollection, FiddlerModificSettingInfo yourModifcSettingInfo, ActuatorStaticDataCollection yourStaticDataCollection , FiddlerRuleGroup yourFiddlerRuleGroup) : this() { InitializeConfigInfo(yourRuleCollection, yourModifcSettingInfo, yourStaticDataCollection, yourFiddlerRuleGroup); if (!rawResponseEdit.SetContextMenuStrip(contextMenuStrip_AddFile)) { MessageBox.Show("RawResponseEdit SetContextMenuStrip fail"); } FreeHttpWindow_Load(null, null); } /// /// On get the http session button click /// public event EventHandler OnUpdataFromSession; /// /// On get the raw http data link click (EventHandler) /// public event GetSessionRawDataEventHandler OnGetSessionRawData; /// /// find your seek head vaule in session (only use in synchronization) /// public event EventHandler OnGetSessionSeekHead; /// /// get select session info show in /// public event EventHandler OnGetSessionEventArgs; /// /// when the freehttp want show independent /// public event EventHandler OnShowInIndependentWindow; //public /// /// get or set ModificSettingInfo /// public FiddlerModificSettingInfo ModificSettingInfo { get; set; } /// /// get or set ModificSettingInfo /// public ActuatorStaticDataCollection StaticDataCollection { get; set; } /// /// get FiddlerModificHttpRuleCollection /// public FiddlerModificHttpRuleCollection ModificHttpRuleCollection { get { return new FiddlerModificHttpRuleCollection(FiddlerRequestChangeList, FiddlerResponseChangeList); } } /// /// get or set ModificRuleGroup(如果使用=重置组信息请重新建立其与ListView的关系) /// public FiddlerRuleGroup ModificRuleGroup { get; set; } /// /// get or set IsSetResponseLatencyEable /// public bool IsSetResponseLatencyEable { get { return isSetResponseLatencyEable; } private set { isSetResponseLatencyEable = value; ChangeSetResponseLatencyMode(value == true ? 0 : -1); } } /// /// Is Request Rule Enable /// public bool IsRequestRuleEnable { get { return ModificSettingInfo.IsEnableRequestRule; } private set { ModificSettingInfo.IsEnableRequestRule = value; } } /// /// Is Response Rule Enable /// public bool IsResponseRuleEnable { get { return ModificSettingInfo.IsEnableResponseRule; } private set { ModificSettingInfo.IsEnableResponseRule = value; } } /// /// Get the RequestRule ListView (not add or del item in your code , if you want change the item just use exist function) /// public ListView RequestRuleListView { get { return lv_requestRuleList; } } /// /// Get the ResponseRule ListView (not add or del item in your code , if you want change the item just use exist function) /// public ListView ResponseRuleListView { get { return lv_responseRuleList; } } /// /// Get latest FiddlerRequestChange list /// public List FiddlerRequestChangeList { get; private set; } /// /// Get latest FiddlerResponseChange list /// public List FiddlerResponseChangeList { get; private set; } /// /// Get edit ListViewItem (if it is not in edit mode return null) /// public ListViewItem EditListViewItem { get; private set; } /// /// Get now edit mode /// public RuleEditMode NowEditMode { get; private set; } = RuleEditMode.NewRuleMode; /// /// Get now protocol mode /// public TamperProtocalType NowProtocalMode { get; private set; } = TamperProtocalType.Http; [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)] private void FreeHttpWindow_Load(object sender, EventArgs e) { if(isLoadFreeHttpWindowUserControl) { return; } try { LoadFiddlerModificHttpRuleCollection(fiddlerModificHttpRuleCollection); } catch(Exception ex) { string errorMes = string.Format("{0}\r\n{1}", ex.Message, ex.InnerException == null ? "" : ex.InnerException.Message); _ = RemoteLogService.ReportLogAsync(errorMes, RemoteLogService.RemoteLogOperation.WindowLoad, RemoteLogService.RemoteLogType.Error); MessageBox.Show(errorMes, "load user rule fail"); if (File.Exists("RuleData.xml")) { File.Copy("RuleData.xml", "RuleData.lastErrorFile", true); } } if(FiddlerRequestChangeList == null) { FiddlerRequestChangeList = new List(); } if(FiddlerResponseChangeList==null) { FiddlerResponseChangeList = new List(); } if (StaticDataCollection == null) { StaticDataCollection = new ActuatorStaticDataCollection(true); } if(ModificRuleGroup==null) { ModificRuleGroup = new FiddlerRuleGroup(lv_requestRuleList, lv_responseRuleList); } else { ModificRuleGroup.SetRuleGroupListView(lv_requestRuleList, lv_responseRuleList); ModificRuleGroup.RecoverGroup(); } if(ModificSettingInfo==null) { ModificSettingInfo = new FiddlerModificSettingInfo(true, false ,true,true); } if(ModificSettingInfo.IsEnableRequestRule) { pb_requestRuleSwitch.Image = Resources.MyResource.switch_on; } if (ModificSettingInfo.IsEnableResponseRule) { pb_responseRuleSwitch.Image = Resources.MyResource.switch_on; } FreeHttp.MyHelper.MyGlobalHelper.OnGetGlobalMessage += ((obj, arg) => { PutWarn(arg.Message); }); tbe_RequestBodyModific.Visible = false; tbe_ResponseBodyModific.Visible = false; tbe_urlFilter.Visible = false; lv_requestRuleList.SetGroupState(ListViewGroupState.Collapsible); lv_responseRuleList.SetGroupState(ListViewGroupState.Collapsible); lv_responseRuleList.OnItemDragSortEnd += Lv_ruleList_OnItemDragSort; lv_requestRuleList.OnItemDragSortEnd += Lv_ruleList_OnItemDragSort; lv_requestRuleList.OnItemDragSortStart += Lv_ruleList_OnItemDragSortStart; lv_responseRuleList.OnItemDragSortStart += Lv_ruleList_OnItemDragSortStart; tbe_RequestBodyModific.OnCloseEditBox += tbe_BodyModific_OnCloseEditBox; tbe_ResponseBodyModific.OnCloseEditBox += tbe_BodyModific_OnCloseEditBox; tbe_urlFilter.OnCloseEditBox += tbe_BodyModific_OnCloseEditBox; cb_macthMode.SelectedIndex = 0; tabControl_Modific.SelectedTab = tabPage_requestModific; IsSetResponseLatencyEable = false; //rtb_MesInfo.AllowDrop = true; //rtb_MesInfo.DragEnter += rtb_MesInfo_DragEnter; //rtb_MesInfo.DragDrop += rtb_MesInfo_DragDrop; splitContainer_httpEditInfo.AllowDrop = true; splitContainer_httpEditInfo.DragEnter += rtb_MesInfo_DragEnter; splitContainer_httpEditInfo.DragDrop += rtb_MesInfo_DragDrop; panel_modific_Contorl.AllowDrop = true; panel_modific_Contorl.DragEnter += rtb_MesInfo_DragEnter; panel_modific_Contorl.DragDrop += rtb_MesInfo_DragDrop; Action dropAction = () => { pb_parameterSwitch.SwitchState = true; }; MyControlHelper.SetRichTextBoxDropString(rtb_requsetReplace_body, dropAction); MyControlHelper.SetRichTextBoxDropString(rtb_requestRaw, dropAction); MyControlHelper.SetRichTextBoxDropString(rtb_requestModific_body, dropAction); MyControlHelper.SetRichTextBoxDropString(rtb_respenseModific_body, dropAction); MyControlHelper.SetRichTextBoxDropString(tb_requestModific_body , dropAction); MyControlHelper.SetRichTextBoxDropString(tb_requestModific_uriModificKey, dropAction); MyControlHelper.SetRichTextBoxDropString(tb_requestModific_uriModificValue, dropAction); MyControlHelper.SetRichTextBoxDropString(tb_responseModific_body, dropAction); isLoadFreeHttpWindowUserControl = true; } internal void FreeHttpWindowSelectedChanged(bool isInFreeHttpWindowSelected) { if(this.Parent is Form) { return; } if(nowRuleInfoWindowList==null || nowRuleInfoWindowList.Count==0) { return; } for (int i = nowRuleInfoWindowList.Count - 1; i >= 0; i--) { if (nowRuleInfoWindowList[i].IsDisposed) { nowRuleInfoWindowList.RemoveAt(i); continue; } nowRuleInfoWindowList[i].Visible = isInFreeHttpWindowSelected; } } internal void FreeHttpWindowParentChanged(object sender) { if (nowRuleInfoWindowList == null || nowRuleInfoWindowList.Count == 0) { return; } for (int i = nowRuleInfoWindowList.Count - 1; i >= 0; i--) { if (!nowRuleInfoWindowList[i].IsDisposed) { nowRuleInfoWindowList[i].Close(); } } nowRuleInfoWindowList.Clear(); } #region Public Event private void tabControl_Modific_Selecting(object sender, TabControlCancelEventArgs e) { if (e == null) return; // e为了null 即为应用调用,不用检查tab状态 if (!(((TabControl)sender).TabPages.Count == 2 && (((TabControl)sender).TabPages[0]==tabPage_requestModific && ((TabControl)sender).TabPages[1] == tabPage_responseModific) || ((TabControl)sender).TabPages.Count == 4)) return; Action cancelChange = () => { MarkControl(pb_ruleCancel, Color.Plum, 2); MarkControl(pb_ruleComfrim, Color.Plum, 2); e.Cancel = true; }; if(NowEditMode== RuleEditMode.EditRequsetRule) { if ((((TabControl)sender).SelectedTab == tabPage_responseModific || ((TabControl)sender).SelectedTab == tabPage_responseReplace) && NowProtocalMode == TamperProtocalType.Http) { MessageBox.Show("the select requst rule is in editing (that pink rule in rule list) \r\nyou should save or cancel this editing before edit response", "STOP"); cancelChange(); } if ((((TabControl)sender).SelectedTab != tabPage_requestModific) && NowProtocalMode == TamperProtocalType.WebSocket) { MessageBox.Show("the select websocket requst rule is in editing (that pink rule in rule list) \r\nyou should save or cancel this editing before edit response", "STOP"); cancelChange(); } } else if(NowEditMode== RuleEditMode.EditResponseRule) { if ((((TabControl)sender).SelectedTab == tabPage_requestModific || ((TabControl)sender).SelectedTab == tabPage_requestReplace) && NowProtocalMode == TamperProtocalType.Http) { MessageBox.Show("the select response rule is in editing (that pink rule in rule list)\r\nyou should save or cancel this editing before edit requst", "STOP"); cancelChange(); } if ((((TabControl)sender).SelectedTab != tabPage_responseModific) && NowProtocalMode == TamperProtocalType.WebSocket) { MessageBox.Show("the select websocket response rule is in editing (that pink rule in rule list) \r\nyou should save or cancel this editing before edit response", "STOP"); cancelChange(); } } else { if ((((TabControl)sender).SelectedTab == tabPage_requestReplace || ((TabControl)sender).SelectedTab == tabPage_responseReplace) && NowProtocalMode == TamperProtocalType.WebSocket) { MessageBox.Show("websocket tamper rule not need use replace mode", "STOP"); e.Cancel = true; } if (((TabControl)sender).SelectedTab == tabPage_requestModific || ((TabControl)sender).SelectedTab == tabPage_requestReplace) { IsSetResponseLatencyEable = false; } else { IsSetResponseLatencyEable = true; } } } private void addFileToolStripMenuItem_Click(object sender, EventArgs e) { object sourceControl = ((ContextMenuStrip)(((ToolStripMenuItem)sender).Owner)).SourceControl; RichTextBox tempRtb = null; if (sourceControl == rtb_requsetReplace_body) { tempRtb = rtb_requsetReplace_body; } else if (sourceControl == rtb_requestRaw) { tempRtb = rtb_requestRaw; } else { tempRtb = sourceControl as RichTextBox; if (tempRtb == null) { //throw new Exception("not adapt this event"); MessageBox.Show("get file fail , please try again or add manually"); return; } } if (openFileDialog_addFIle.ShowDialog() == DialogResult.OK) { string tempPath = openFileDialog_addFIle.FileName; int tempIndex = tempRtb.Text.IndexOf("<>"); if (tempIndex >= 0) { tempRtb.Text = tempRtb.Text.Remove(tempIndex); } if (!tempRtb.Text.EndsWith("\n\n") && tempRtb != rtb_requsetReplace_body) { if (tempRtb.Text.EndsWith("\n")) { tempRtb.AppendText("\n"); } else { tempRtb.AppendText("\n\n"); } } tempRtb.AppendText(string.Format("<>{0}", tempPath)); } } private void contextMenuStrip_addParameter_Opening(object sender, CancelEventArgs e) { ((System.Windows.Forms.ToolStripDropDown)(sender)).Tag = ((ToolStripDropDown)(sender)).OwnerItem; } private void contextMenuStrip_AddFile_Opening(object sender, CancelEventArgs e) { ((ContextMenuStrip)sender).Tag = ((ContextMenuStrip)sender).SourceControl; if(((ContextMenuStrip)sender).SourceControl == rtb_requestModific_body || ((ContextMenuStrip)sender).SourceControl == rtb_respenseModific_body) { addFileToolStripMenuItem.Enabled = false; antoContentLengthToolStripMenuItem.Enabled = false; antoContentLengthToolStripMenuItem.Checked = true; } else { addFileToolStripMenuItem.Enabled = true; antoContentLengthToolStripMenuItem.Enabled = true; //antoContentLengthToolStripMenuItem.Checked = true; } } private void addParameterDataToolStripMenuItem_Click(object sender, EventArgs e) { string additionStr = null; string addParameterStr = null; if(sender ==currentValueToolStripMenuItem) { additionStr = "(=)"; } else if (sender == nextValueToolStripMenuItem) { additionStr = "(+)"; } else if (sender == previousValueToolStripMenuItem) { additionStr = "(+2)"; } else { return; } if(((System.Windows.Forms.ToolStripItem)(sender)).Owner.Tag==null) { MessageBox.Show("add parameter fail ,please add manually"); return; } object tempTag = ((System.Windows.Forms.ToolStripItem)(sender)).Owner.Tag; addParameterStr = string.Format("*#{0}{1}*#", ((ToolStripItem)tempTag).Text, additionStr); //there is a bug in dot net 4.5 when call SourceControl (https://github.com/Microsoft/dotnet/issues/434 ) //RichTextBox tempRichTextBox = ((ContextMenuStrip)((((ToolStripItem)(tempTag)).OwnerItem).OwnerItem.Owner)).SourceControl as RichTextBox; RichTextBox tempRichTextBox = ((ContextMenuStrip)((((ToolStripItem)(tempTag)).OwnerItem).OwnerItem.Owner)).Tag as RichTextBox; if(tempRichTextBox==null) { MessageBox.Show("add parameter fail ,please add manually"); return ; } int selectionStart = tempRichTextBox.SelectionStart; tempRichTextBox.Text = tempRichTextBox.Text.Insert(selectionStart, addParameterStr); tempRichTextBox.Select(selectionStart, addParameterStr.Length); pb_parameterSwitch.SwitchState = true; } private void addParameterDataToolStripMenuItem_DropDownOpening(object sender, EventArgs e) { keyValueToolStripMenuItem.DropDownItems.Clear(); parameterToolStripMenuItem.DropDownItems.Clear(); dataSouceToolStripMenuItem.DropDownItems.Clear(); if(StaticDataCollection==null) { return; } if (StaticDataCollection.RunActuatorStaticDataKeyList != null && StaticDataCollection.RunActuatorStaticDataKeyList.Count>0) { foreach(var tempItem in StaticDataCollection.RunActuatorStaticDataKeyList) { //keyValueToolStripMenuItem.DropDownItems.Add(tempItem.Key); ToolStripMenuItem tempTmi = new ToolStripMenuItem(tempItem.Key); tempTmi.DropDown = contextMenuStrip_addParameter; keyValueToolStripMenuItem.DropDownItems.Add(tempTmi); } keyValueToolStripMenuItem.Enabled = true; } else { keyValueToolStripMenuItem.Enabled = false; } if (StaticDataCollection.RunActuatorStaticDataParameterList != null && StaticDataCollection.RunActuatorStaticDataParameterList.Count > 0) { foreach (var tempItem in StaticDataCollection.RunActuatorStaticDataParameterList) { //parameterToolStripMenuItem.DropDownItems.Add(tempItem.Key); ToolStripMenuItem tempTmi = new ToolStripMenuItem(tempItem.Key); tempTmi.DropDown = contextMenuStrip_addParameter; parameterToolStripMenuItem.DropDownItems.Add(tempTmi); } parameterToolStripMenuItem.Enabled = true; } else { parameterToolStripMenuItem.Enabled = false; } if (StaticDataCollection.RunActuatorStaticDataSouceList != null && StaticDataCollection.RunActuatorStaticDataSouceList.Count > 0) { foreach (var tempItem in StaticDataCollection.RunActuatorStaticDataSouceList) { //dataSouceToolStripMenuItem.DropDownItems.Add(tempItem.Key); ToolStripMenuItem tempTmi = new ToolStripMenuItem(tempItem.Key); tempTmi.DropDown = contextMenuStrip_addParameter; dataSouceToolStripMenuItem.DropDownItems.Add(tempTmi); } dataSouceToolStripMenuItem.Enabled = true; } else { dataSouceToolStripMenuItem.Enabled = false; } } private void antoContentLengthToolStripMenuItem_Click(object sender, EventArgs e) { antoContentLengthToolStripMenuItem.Checked = !antoContentLengthToolStripMenuItem.Checked; } private void pictureBox_editRuleMode_Click(object sender, EventArgs e) { pb_ruleComfrim_Click(sender, e); } private void pictureBox_editHttpFilter_Click(object sender, EventArgs e) { pictureBox_editHttpFilter.Tag = GetHttpFilter(); HttpFilterWindow f = new HttpFilterWindow(pictureBox_editHttpFilter.Tag ,NowProtocalMode); f.ShowDialog(); if (((FiddlerHttpFilter)pictureBox_editHttpFilter.Tag).HeadMatch != null || ((FiddlerHttpFilter)pictureBox_editHttpFilter.Tag).BodyMatch != null) { pictureBox_editHttpFilter.Image = Resources.MyResource.filter_on; } else { pictureBox_editHttpFilter.Image = Resources.MyResource.filter_off; } SetUriMatch(((FiddlerHttpFilter)pictureBox_editHttpFilter.Tag).UriMatch); } //pictureBox change for all public void pictureBox_MouseMove(object sender, MouseEventArgs e) { ((PictureBox)sender).BackColor = Color.Honeydew; } //pictureBox change for all public void pictureBox_MouseLeave(object sender, EventArgs e) { ((PictureBox)sender).BackColor = Color.Transparent; } private void tb_Modific_body_Enter(object sender, EventArgs e) { TextBoxEditer tbe = null; if (sender == tb_requestModific_body) { tbe = tbe_RequestBodyModific; } else if (sender == tb_responseModific_body) { tbe = tbe_ResponseBodyModific; } else if(sender == tb_urlFilter) { tbe = tbe_urlFilter; } else { throw new Exception("nonsupport sender in tb_Modific_body_Enter"); } tbe.Visible = true; } private void tb_Modific_body_Leave(object sender, EventArgs e) { TextBoxEditer tbe = null; if (sender == tb_requestModific_body) { tbe = tbe_RequestBodyModific; } else if (sender == tb_responseModific_body) { tbe = tbe_ResponseBodyModific; } else if (sender == tb_urlFilter) { tbe = tbe_urlFilter; } else { throw new Exception("nonsupport sender in tb_Modific_body_Enter"); } if (!(tbe.IsShowEditRichTextBox)) { tbe.Visible = false; } } void tbe_BodyModific_OnCloseEditBox(object sender, TextBoxEditer.CloseEditBoxEventArgs e) { ((TextBoxEditer)sender).Visible = false; } private void tabControl_Modific_Resize(object sender, EventArgs e) { tb_urlFilter.Width = tabControl_Modific.Width - 264; //tabPage_requestModific requestRemoveHeads.Width = (tabControl_Modific.Width - 22) / 3; requestAddHeads.Width = (tabControl_Modific.Width - 22) * 2 / 3; tb_requestModific_uriModificValue.Width = tabControl_Modific.Width - 126; tb_requestModific_body.Width = tabControl_Modific.Width - 92; //tabPage_requestReplace tb_requestReplace_uri.Width = tabControl_Modific.Width - 289; //tabPage_reponseModific responseRemoveHeads.Width = (tabControl_Modific.Width - 22) / 3; responseAddHeads.Width = (tabControl_Modific.Width - 22) * 2 / 3; tb_responseModific_body.Width = tabControl_Modific.Width - 92; } private void splitContainer_httpControl_Resize(object sender, EventArgs e) { //rule list //- (lv_requestRuleList.Groups.Count > 0 ? 5 : 0) columnHeader_requstRule.Width = lv_requestRuleList.Width - 75 ; columnHeader_responseRule.Width = lv_responseRuleList.Width - 75; } #endregion #region Modific ContorLine private void pb_ruleComfrim_Click(object sender, EventArgs e) { FiddlerRequestChange nowRequestChange = null; FiddlerResponseChange nowResponseChange = null; IFiddlerHttpTamper fiddlerHttpTamper = null; ListView tamperRuleListView = null; try { if(tabControl_Modific.SelectedTab== tabPage_requestModific) { nowRequestChange = GetRequestModificInfo(); } else if(tabControl_Modific.SelectedTab==tabPage_requestReplace) { nowRequestChange = GetRequestReplaceInfo(); } else if(tabControl_Modific.SelectedTab==tabPage_responseModific) { nowResponseChange = GetResponseModificInfo(); } else if(tabControl_Modific.SelectedTab== tabPage_responseReplace) { nowResponseChange = GetResponseReplaceInfo(); } else { throw new Exception("unknow http tamper tab"); } } catch (Exception ex) { _ = RemoteLogService.ReportLogAsync(ex.ToString(), RemoteLogService.RemoteLogOperation.AddRule, RemoteLogService.RemoteLogType.Error); MessageBox.Show(ex.Message, "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); PutError(string.Format("add rule fail :{0}", ex.Message)); MarkControl(tabControl_Modific.SelectedTab, Color.Plum, 2); nowRequestChange = null; nowResponseChange = null; } finally { if (nowRequestChange != null) { fiddlerHttpTamper = nowRequestChange; tamperRuleListView = lv_requestRuleList; } else if (nowResponseChange != null) { fiddlerHttpTamper = nowResponseChange; tamperRuleListView = lv_responseRuleList; } } if (fiddlerHttpTamper == null) { return; } if (fiddlerHttpTamper.HttpFilter == null || fiddlerHttpTamper.HttpFilter.UriMatch == null) { MessageBox.Show("you Uri Filter is not legal \r\n check it again", "edit again"); MarkControl(groupBox_urlFilter, Color.Plum, 2); return; } ListViewItem nowRuleItem = null; if(NowEditMode == RuleEditMode.NewRuleMode) //编辑模式不检查重复Filter,如果需要检查去掉if直接执行{}内逻辑 { foreach (ListViewItem tempItem in tamperRuleListView.Items) { if (tempItem == EditListViewItem) { continue; } //if (fiddlerHttpTamper.HttpFilter.UriMatch.Equals(tempItem.Tag)) if (fiddlerHttpTamper.HttpFilter.Equals(tempItem.Tag)) { MarkRuleItem(tempItem, Color.Plum, 2); DialogResult tempDs; //add mode if (EditListViewItem == null) { tempDs = MessageBox.Show(string.Format("find same url filter with [Rule:{0}], do you want create the same uri rule \r\n [Yes] new a same url filter rule \r\n [No] update the rule \r\n [Cancel] give up save", tempItem.SubItems[0].Text), "find same rule ", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (tempDs == DialogResult.Yes) { continue; } else if (tempDs == DialogResult.No) { nowRuleItem = tempItem; SyncEnableSateToIFiddlerHttpTamper(nowRuleItem, fiddlerHttpTamper); UpdataRuleToListView(nowRuleItem, fiddlerHttpTamper, true); break; } else { return; } } //edit mode else { tempDs = MessageBox.Show(string.Format("find same uri filter with [Rule:{0}], do you want save the rule \r\n [Yes] skip the same uri filter rule \r\n [No] remove the rule \r\n [Cancel] give up save", tempItem.SubItems[0].Text), "find same rule ", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (tempDs == DialogResult.Yes) { continue; } else if (tempDs == DialogResult.No) { DelRuleFromListView(tamperRuleListView, tempItem); //tamperRuleListView.Items.Remove(tempItem); continue; } else { return; } } } } } if (nowRuleItem == null) { if (EditListViewItem == null) { AddRuleToListView(tamperRuleListView, fiddlerHttpTamper, true); } else { SyncEnableSateToIFiddlerHttpTamper(EditListViewItem, fiddlerHttpTamper); UpdataRuleToListView(EditListViewItem, fiddlerHttpTamper, true); } } ChangeNowRuleMode(RuleEditMode.NewRuleMode, NowProtocalMode, null, null); } private void pb_ruleCancel_Click(object sender, EventArgs e) { PutWarn("Clear the Modific Info"); ChangeNowRuleMode(RuleEditMode.NewRuleMode, NowProtocalMode, null, null); } private void pb_protocolSwitch_Click(object sender, EventArgs e) { if (NowEditMode != RuleEditMode.NewRuleMode) { if (DialogResult.Cancel == MessageBox.Show("your are in EditMode now \r\nchange protocol mode will discard your change for this rule", "change protocol mode", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)) { return; } } ChangeNowRuleMode(RuleEditMode.NewRuleMode, ((MySwitchPictureButton)sender).SwitchState ? TamperProtocalType.WebSocket : TamperProtocalType.Http, null, null); } private void pb_responseLatency_Click(object sender, EventArgs e) { if (IsSetResponseLatencyEable) { SetVaule f = new SetVaule("Set Latency", "Enter the exact number of milliseconds by which to delay the response", sender == pb_responseLatency ? "0" : lbl_ResponseLatency.GetLatency().ToString(), new Func((string checkValue) => { int tempValue; if (checkValue == "") return null; return (int.TryParse(checkValue, out tempValue) && tempValue>=0)?null:""; })); f.OnSetValue += f_OnSetValue; f.ShowDialog(); } else { MessageBox.Show("Can not set latency in reqest modific mode\r\njust change to response modific mode", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); } } private void pb_pickRule_Click(object sender, EventArgs e) { EditParameterPickWindow f; if(pb_pickRule.Tag is List) { f = new EditParameterPickWindow((List)pb_pickRule.Tag, SetHttpParameterPick); } else { f = new EditParameterPickWindow(null,SetHttpParameterPick); } f.StartPosition = FormStartPosition.CenterParent; f.ShowDialog(); } void f_OnSetValue(object sender, SetVaule.SetVauleEventArgs e) { if (e.SetValue == null || e.SetValue == "0" || e.SetValue == "") { ChangeSetResponseLatencyMode(0); } else { //impossible to exception throw ChangeSetResponseLatencyMode(int.Parse(e.SetValue)); } } private void disableCacheToolStripMenuItem_Click(object sender, EventArgs e) { if(NowEditMode== RuleEditMode.EditResponseRule) { //DialogResult dialogResult ; if (MessageBox.Show("your are in Response Edit Mode.\r\ndo you want give up the editing and new a rule to continue this quick rule?", "Continue or not", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { pb_ruleCancel_Click(this, e); } else { return; } } tabControl_Modific.SelectedTab = tabPage_requestModific; requestRemoveHeads.ListDataView.Items.Add("Pragma"); //requestRemoveHeads.ListDataView.Items.Add("Expires");//If there is a Cache-Control header with the max-age or s-maxage directive in the response, the Expires header is ignored. Expires是一个响应头 requestRemoveHeads.ListDataView.Items.Add("Cache-Control"); //requestRemoveHeads.ListDataView.Items.Add("ETag");//ETag 也是HTTP响应头。 与If-None-Match 完成缓存验证 ,与 If-Match 请求头部,检测到"空中碰撞"的编辑冲突。 //requestRemoveHeads.ListDataView.Items.Add("Last-Modified");//Last-Modified 是一个响应首部,其中包含源头服务器认定的资源做出修改的日期及时间。 它通常被用作一个验证器来判断接收到的或者存储的资源是否彼此一致。由于精确度比 ETag 要低,所以这是一个备用机制。包含有 If-Modified-Since 或 If-Unmodified-Since 首部的条件请求会使用这个字段。 requestRemoveHeads.ListDataView.Items.Add("If-None-Match"); requestRemoveHeads.ListDataView.Items.Add("If-Modified-Since"); requestAddHeads.ListDataView.Items.Add("Pragma: no-cache"); requestAddHeads.ListDataView.Items.Add("Cache-Control: no-cache"); if (tb_urlFilter.Text == "") { GetSessionEventArgs sessionArgs = GetNowHttpSession(); if(sessionArgs.IsGetSuccess&& sessionArgs.Uri!=null) { SetUriMatch(new FiddlerUriMatch(FiddlerUriMatchMode.Is, sessionArgs.Uri)); } } } private void addCookieToolStripMenuItem_Click(object sender, EventArgs e) { if (NowEditMode == RuleEditMode.EditResponseRule) { if (MessageBox.Show("your are in Response Edit Mode.\r\ndo you want give up the editing and new a rule to continue this quick rule?", "Continue or not", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { pb_ruleCancel_Click(this, e); } else { return; } } tabControl_Modific.SelectedTab = tabPage_requestModific; EditKeyVaule f = new EditKeyVaule(requestAddHeads.ListDataView, "Cookie", ": "); f.ShowDialog(); } private void addUserAgentToolStripMenuItem_Click(object sender, EventArgs e) { if (NowEditMode == RuleEditMode.EditResponseRule) { if (MessageBox.Show("your are in Response Edit Mode.\r\ndo you want give up the editing and new a rule to continue this quick rule?", "Continue or not", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { pb_ruleCancel_Click(this, e); } else { return; } } tabControl_Modific.SelectedTab = tabPage_requestModific; requestRemoveHeads.ListDataView.Items.Add("User-Agent"); EditKeyVaule f = new EditKeyVaule(requestAddHeads.ListDataView, "User-Agent", ": "); f.ShowDialog(); } private void ChangeSessionEncodingToolStripMenuItem_Click(object sender, EventArgs e) { GetSessionSeekHeadEventArgs seekHeadArgs = new GetSessionSeekHeadEventArgs(new KeyValuePair("Content-Type", null), new KeyValuePair("Content-Type", null)); if(OnGetSessionSeekHead!=null) { this.OnGetSessionSeekHead(this,seekHeadArgs); } ChangeEncodeForm.ChangeEncodeInfo changeEncodeInfo = new ChangeEncodeForm.ChangeEncodeInfo { ContentType_Request= seekHeadArgs.ResquestHead.Value, ContentType_Response= seekHeadArgs.ResponseHead.Value, NowEncode=null, EditMode = NowEditMode }; ChangeEncodeForm f = new ChangeEncodeForm(changeEncodeInfo); DialogResult dialogResult = f.ShowDialog(); if(string.IsNullOrEmpty(changeEncodeInfo.NowEncode)) { return; } if (changeEncodeInfo.ContentType_Request == null) { FiddlerResponseChange responseChange = new FiddlerResponseChange(); if (seekHeadArgs.SeekUri != null) { responseChange.HttpFilter = new FiddlerHttpFilter(new FiddlerUriMatch(FiddlerUriMatchMode.Is, seekHeadArgs.SeekUri)); } responseChange.HeadDelList = new List { "Content-Type" }; responseChange.HeadAddList = new List{string.Format("Content-Type: {0}", changeEncodeInfo.ContentType_Response)}; responseChange.BodyModific = new ParameterContentModific(string.Format("{0}", changeEncodeInfo.NowEncode), ""); SetResponseModificInfo(responseChange); } else { FiddlerRequestChange requestChange = new FiddlerRequestChange(); if (seekHeadArgs.SeekUri != null) { requestChange.HttpFilter = new FiddlerHttpFilter(new FiddlerUriMatch(FiddlerUriMatchMode.Is, seekHeadArgs.SeekUri)); } requestChange.HeadDelList = new List { "Content-Type" }; requestChange.HeadAddList = new List { string.Format("Content-Type: {0}", changeEncodeInfo.ContentType_Request) }; requestChange.BodyModific = new ParameterContentModific(string.Format("{0}", changeEncodeInfo.NowEncode), ""); SetRequestModificInfo(requestChange); } } private void deleteCookieToolStripMenuItem_Click(object sender, EventArgs e) { if (NowEditMode == RuleEditMode.EditRequsetRule) { if (MessageBox.Show("your are in Request Edit Mode.\r\ndo you want give up the editing and new a rule to continue this quick rule?", "Continue or not", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { pb_ruleCancel_Click(this, e); } else { return; } } tabControl_Modific.SelectedTab = tabPage_responseModific; string tempDomain = String.Empty; GetSessionEventArgs sessionArgs = GetNowHttpSession(); if (sessionArgs.IsGetSuccess && sessionArgs.RequestHeads!=null) { try { tempDomain = sessionArgs.RequestHeads.First(headerItem => headerItem.Key.Trim().ToLower() == "host").Value.Trim(); } catch { tempDomain = "www.yourhost.com"; } } EditCookieForm f = new EditCookieForm(responseAddHeads.ListDataView, null, null, string.Format("Max-Age=1;Domain={0};Path=/", tempDomain)); f.ShowDialog(); if (tb_urlFilter.Text == "") { if (sessionArgs.IsGetSuccess && sessionArgs.Uri != null) { SetUriMatch(new FiddlerUriMatch(FiddlerUriMatchMode.Is, sessionArgs.Uri)); } } } private void setClientCookieToolStripMenuItem_Click(object sender, EventArgs e) { if (NowEditMode == RuleEditMode.EditRequsetRule) { if (MessageBox.Show("your are in Request Edit Mode.\r\ndo you want give up the editing and new a rule to continue this quick rule?", "Continue or not", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { pb_ruleCancel_Click(this, e); } else { return; } } tabControl_Modific.SelectedTab = tabPage_responseModific; EditCookieForm f = new EditCookieForm(responseAddHeads.ListDataView); f.ShowDialog(); } private void copySessionCookiesToolStripMenuItem_Click(object sender, EventArgs e) { if (NowEditMode == RuleEditMode.EditRequsetRule) { if (MessageBox.Show("your are in Request Edit Mode.\r\ndo you want give up the editing and new a rule to continue this quick rule?", "Continue or not", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { pb_ruleCancel_Click(this, e); } else { return; } } tabControl_Modific.SelectedTab = tabPage_responseModific; if (OnGetSessionRawData != null) { this.OnGetSessionRawData(this, new GetSessionRawDataEventArgs(GetSessionAction.SetCookies)); } } private void removeSessionCookiesToolStripMenuItem_Click(object sender, EventArgs e) { if (NowEditMode == RuleEditMode.EditRequsetRule) { if (MessageBox.Show("your are in Request Edit Mode.\r\ndo you want give up the editing and new a rule to continue this quick rule?", "Continue or not", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { pb_ruleCancel_Click(this, e); } else { return; } } tabControl_Modific.SelectedTab = tabPage_responseModific; if (OnGetSessionRawData != null) { this.OnGetSessionRawData(this, new GetSessionRawDataEventArgs(GetSessionAction.DeleteCookies)); } } private void showSelectedSessionStreamToolStripMenuItem_Click(object sender, EventArgs e) { if(OnGetSessionRawData!=null) { this.OnGetSessionRawData(this, new GetSessionRawDataEventArgs(GetSessionAction.ShowShowResponse)); } } private void httpTamperSettingToolStripMenuItem_Click(object sender, EventArgs e) { SettingWindow f = new SettingWindow(ModificSettingInfo); f.ShowDialog(); } private void loadingRemoteRuleToolStripMenuItem_Click(object sender, EventArgs e) { GetRemoteRuleWindow f = new GetRemoteRuleWindow(this); f.StartPosition = FormStartPosition.CenterParent; f.ShowDialog(); return; //下面的都是测试代码,不会被执行到 //WebService.RemoteRuleService.GetRemoteRuleAsync("6077f8fa617545cb9fbf12b1c874f7ee").ContinueWith((rule) => { LoadFiddlerModificHttpRuleCollection(rule.Result); }); System.Threading.Tasks.Task ruleTask = System.Threading.Tasks.Task.Run(new Func(() => { //return WebService.RemoteRuleService.GetRemoteRuleAsync("6077f8fa617545cb9fbf12b1c874f7ee").GetAwaiter().GetResult(); var x = WebService.RemoteRuleService.GetRemoteRuleAsync("6077f8fa617545cb9fbf12b1c874f7ee"); System.Threading.Thread.Sleep(100); return x.Result; })); RuleDetails ruleDetails = ruleTask.GetAwaiter().GetResult(); if (ruleDetails != null) { InitializeConfigInfo(ruleDetails.ModificHttpRuleCollection, ModificSettingInfo, ruleDetails.StaticDataCollection,null); LoadFiddlerModificHttpRuleCollection(fiddlerModificHttpRuleCollection); } return; //FiddlerModificHttpRuleCollection tempModificHttpRuleCollection = WebService.RemoteRuleService.GetRemoteRuleAsync("6077f8fa617545cb9fbf12b1c874f7ee").GetAwaiter().GetResult(); System.Threading.Tasks.Task getRuleTask = WebService.RemoteRuleService.GetRemoteRuleAsync("6077f8fa617545cb9fbf12b1c874f7ee"); //getRuleTask.Start(); //getRuleTask.Wait(); RuleDetails tempModificHttpRuleCollection = getRuleTask.Result; if (tempModificHttpRuleCollection != null) { LoadFiddlerModificHttpRuleCollection(tempModificHttpRuleCollection.ModificHttpRuleCollection); } } private void parameterDataManageToolStripMenuItem_Click(object sender, EventArgs e) { foreach (Form tempFrom in (Fiddler.FiddlerApplication.UI).OwnedForms) { if (tempFrom is StaticDataManageWindow) { tempFrom.Location = new Point((System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width - tempFrom.Width) / 2, (System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height-tempFrom.Height) / 2); return; } } StaticDataManageWindow staticDataManageWindow; staticDataManageWindow = new StaticDataManageWindow(StaticDataCollection); staticDataManageWindow.Owner = Fiddler.FiddlerApplication.UI; staticDataManageWindow.StartPosition = FormStartPosition.CenterScreen; //f.ShowDialog(); staticDataManageWindow.Show(); } public void independentWindowToolStripMenuItem_Click(object sender, EventArgs e) { if (independentWindowToolStripMenuItem.Text == "independent window") { this.OnShowInIndependentWindow(this, true); independentWindowToolStripMenuItem.Text = "addin window"; } else { this.OnShowInIndependentWindow(this, false); independentWindowToolStripMenuItem.Text = "independent window"; } } private void FeedbackToolStripMenuItem_Click(object sender, EventArgs e) { UserFeedbackWindow f = new UserFeedbackWindow(this); f.StartPosition = FormStartPosition.CenterParent; f.ShowDialog(); } private void CodeInGithubToolStripMenuItem_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("https://github.com/lulianqi/FreeHttp"); } private void DocumentationToolStripMenuItem_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("http://doc.lulianqi.com/FreeHttp/Documentation/recent"); } #endregion #region Rule control private void Lv_ruleList_OnItemDragSort(object sender, DragEventArgs e) { ModificRuleGroup.RecoverTemporaryGroup((ListView)sender); RefreshFiddlerRuleList((ListView)sender); } private void Lv_ruleList_OnItemDragSortStart(object sender, ItemDragEventArgs e) { ModificRuleGroup.RemoveGroupTemporary((ListView)sender); } private void pb_requestRuleSwitch_Click(object sender, EventArgs e) { if(IsRequestRuleEnable) { pb_requestRuleSwitch.Image = Resources.MyResource.switch_off; IsRequestRuleEnable = false; PutWarn("Request Temper Rule Forbidden"); } else { pb_requestRuleSwitch.Image = Resources.MyResource.switch_on; IsRequestRuleEnable = true; PutWarn("Request Temper Rule Enabled"); } } private void pb_responseRuleSwitch_Click(object sender, EventArgs e) { if(IsResponseRuleEnable) { pb_responseRuleSwitch.Image = Resources.MyResource.switch_off; IsResponseRuleEnable = false; PutWarn("Response Temper Rule Forbidden"); } else { pb_responseRuleSwitch.Image = Resources.MyResource.switch_on; IsResponseRuleEnable = true; PutWarn("Response Temper Rule Enabled"); } } private void lv_ruleList_ItemMouseHover(object sender, ListViewItemMouseHoverEventArgs e) { ListViewItem nowListViewItem = e.Item; ShowRuleInfo_pb.Tag = nowListViewItem; nowListViewItem.ListView.Controls.Add(ShowRuleInfo_pb); ShowRuleInfo_pb.Visible = true; Rectangle r = nowListViewItem.Bounds; ShowRuleInfo_pb.Size = new Size((int)((r.Height-4)*1.5), r.Height-4); ShowRuleInfo_pb.Location =new Point( nowListViewItem.Position.X+r.Width - ShowRuleInfo_pb.Width-30, nowListViewItem.Position.Y+2); } private void lv_ruleList_MouseLeave(object sender, EventArgs e) { ListView tempListView = sender as ListView; if (tempListView == null) return; Point tempPosition = Control.MousePosition; tempPosition = tempListView.PointToClient(tempPosition); if (tempListView.GetItemAt(tempPosition.X, tempPosition.Y) == null) { ShowRuleInfo_pb.Visible = false; } } [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)] private void ShowRuleInfo_pb_Click(object sender, EventArgs e) { ListViewItem nowListViewItem = ShowRuleInfo_pb.Tag as ListViewItem; bool isExistedInfoWindow = false; if (nowListViewItem==null) return; for (int i = nowRuleInfoWindowList.Count - 1; i >= 0; i--) { if (nowRuleInfoWindowList[i].IsDisposed) { nowRuleInfoWindowList.RemoveAt(i); continue; } if(!isExistedInfoWindow && nowRuleInfoWindowList[i].InnerListViewItem == nowListViewItem) { nowRuleInfoWindowList[i].Activate(); isExistedInfoWindow = true; } } if(isExistedInfoWindow) { return; } Point myPosition; try { myPosition = new Point(nowListViewItem.Bounds.X, nowListViewItem.Bounds.Y); } catch { MessageBox.Show("your rule is already collapsed"); return; } myPosition = nowListViewItem.ListView.PointToScreen(myPosition); myPosition = this.ParentForm.PointToClient(myPosition); myPosition.Offset(40, 10); RuleInfoWindow myListViewCBallon = new RuleInfoWindow(nowListViewItem); myListViewCBallon.Owner = this.ParentForm; myListViewCBallon.HasShadow = true; myListViewCBallon.setBalloonPosition(this.ParentForm, myPosition, new Size(0, 0)); myListViewCBallon.Show(); myListViewCBallon.UpdateBalloonPosition(myPosition); nowRuleInfoWindowList.Add(myListViewCBallon); if (nowRuleInfoWindowList.Count>4) { nowRuleInfoWindowList[0].Close(); nowRuleInfoWindowList.RemoveAt(0); } } private void lv_RuleList_DoubleClick(object sender, EventArgs e) { //Point p = PointToClient(new Point(Cursor.Position.X, Cursor.Position.Y)); //ListViewItem lvi = ((ListView)sender).GetItemAt(p.X, p.Y); if (((ListView)sender).SelectedItems == null || ((ListView)sender).SelectedItems.Count == 0) { return; } ListViewItem nowListViewItem = ((ListView)sender).SelectedItems[0]; if (nowListViewItem != null) { //TamperProtocalType tempProtocolMode; //if (string.IsNullOrEmpty(((IFiddlerHttpTamper)nowListViewItem.Tag).TamperProtocol)) //{ // tempProtocolMode = TamperProtocalType.Http; //} //else if (!Enum.TryParse(((IFiddlerHttpTamper)nowListViewItem.Tag).TamperProtocol, out tempProtocolMode)) //{ // if(DialogResult.OK== MessageBox.Show("find unkonw protocal in your rule \r\ndo you want change the unkonw protocol to Http", "unkonw protocol", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)) // { // tempProtocolMode = TamperProtocalType.Http; // } // else // { // return; // } //} if (sender == lv_requestRuleList) { ChangeNowRuleMode(RuleEditMode.EditRequsetRule, ((IFiddlerHttpTamper)nowListViewItem.Tag).TamperProtocol, string.Format("Edit Requst {0}", nowListViewItem.SubItems[0].Text), nowListViewItem); SetRequestModificInfo((FiddlerRequestChange)nowListViewItem.Tag); } else if (sender == lv_responseRuleList) { ChangeNowRuleMode(RuleEditMode.EditResponseRule, ((IFiddlerHttpTamper)nowListViewItem.Tag).TamperProtocol, string.Format("Edit Response {0}", nowListViewItem.SubItems[0].Text), nowListViewItem); SetResponseModificInfo((FiddlerResponseChange)nowListViewItem.Tag); } else { MessageBox.Show("not adaptive to lv_RuleList_DoubleClick"); } nowListViewItem.ListView.SelectedItems.Clear(); } } private void lv_RuleList_ItemChecked(object sender, ItemCheckedEventArgs e) { if (e.Item != null) { SyncEnableSateToIFiddlerHttpTamper(e.Item, (IFiddlerHttpTamper)e.Item.Tag); //((IFiddlerHttpTamper)e.Item.Tag).IsEnable = e.Item.Checked; } } private void pb_addTemperRule_Click(object sender, EventArgs e) { if (sender == pb_addRequestRule) { ChangeNowRuleMode(RuleEditMode.NewRuleMode, NowProtocalMode, null, null); tabControl_Modific.SelectedTab = tabPage_requestModific; MarkTipControl(tabPage_requestModific); //MarkControl(pb_getSession, Color.MediumSpringGreen, 1); } else if (sender == pb_addResponseRule) { ChangeNowRuleMode(RuleEditMode.NewRuleMode, NowProtocalMode, null, null); tabControl_Modific.SelectedTab = tabPage_responseModific; MarkTipControl(tabPage_responseModific); //MarkControl(pb_getSession, Color.MediumSpringGreen, 1); } else { return; } } private void pb_removeTemperRule_Click(object sender, EventArgs e) { ListView nowRuleListView = null; if (sender == pb_removeRequestRule) { nowRuleListView = lv_requestRuleList; } else if (sender == pb_removeResponseRule) { nowRuleListView = lv_responseRuleList; } else { return; } if (nowRuleListView.SelectedItems != null && nowRuleListView.SelectedItems.Count>0) { foreach (ListViewItem tempItem in nowRuleListView.SelectedItems) { if (tempItem == EditListViewItem) { ChangeNowRuleMode(RuleEditMode.NewRuleMode, NowProtocalMode, null, null); PutWarn("you editing rule is removed ,now change to [NewRuleMode]"); } DelRuleFromListView(nowRuleListView, tempItem); //nowRuleListView.Items.Remove(tempItem); } //更新组信息,删除空组 RemoveEmptyViewGroup(nowRuleListView); //删除不用调整rule id 没有重复的风险 //AdjustRuleListViewIndex(nowRuleListView); } else { MessageBox.Show("please select the rules that your want remove"); } } #region RuleToolStripMenuItem private ListView GetRuleToolStripMenuItemSourceControl(object sender) { object sourceControl = ((ContextMenuStrip)(((ToolStripMenuItem)sender).Owner)).SourceControl; if (sourceControl == lv_requestRuleList) { return lv_requestRuleList; } else if (sourceControl == lv_responseRuleList) { return lv_responseRuleList; } else { throw new Exception("nonsupported SelectedRuleToolStripMenuItem_Click"); } } private void removeSelectedRuleToolStripMenuItem_Click(object sender, EventArgs e) { ListView tempRuleLv = GetRuleToolStripMenuItemSourceControl(sender); if (tempRuleLv == lv_requestRuleList) { pb_removeTemperRule_Click(pb_removeRequestRule, null); } else if (tempRuleLv == lv_responseRuleList) { pb_removeTemperRule_Click(pb_removeResponseRule, null); } else { throw new Exception("nonsupported SelectedRuleToolStripMenuItem_Click"); } } private void removeAllRuleToolStripMenuItem_Click(object sender, EventArgs e) { if(!(MessageBox.Show("if you want remove all your tamper rule in this list","reconfirm ",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)== DialogResult.OK)) { return; } ListView tempRuleLv = GetRuleToolStripMenuItemSourceControl(sender); if (EditListViewItem != null && EditListViewItem.ListView == tempRuleLv) { ChangeNowRuleMode(RuleEditMode.NewRuleMode, NowProtocalMode, null, null); PutWarn("you editing rule is removed ,now change to [NewRuleMode]"); } //tempRuleLv.Items.Clear(); DelRuleFromListView(tempRuleLv, null); } private void copySelectedRuleToolStripMenuItem_Click(object sender, EventArgs e) { ListView nowRuleListView = GetRuleToolStripMenuItemSourceControl(sender); if (nowRuleListView.SelectedItems != null && nowRuleListView.SelectedItems.Count > 0) { foreach (ListViewItem tempItem in nowRuleListView.SelectedItems) { try { IFiddlerHttpTamper tempHttpTamper = ((IFiddlerHttpTamper)tempItem.Tag).Clone() as IFiddlerHttpTamper; tempHttpTamper.RuleUid = null;//深度克隆会有一样的UID,这里需要重置副本UID tempHttpTamper.HttpFilter.Name = string.Format(" {0}", tempHttpTamper.HttpFilter?.GetShowTitle() ?? ""); AddRuleToListView(nowRuleListView, tempHttpTamper, true); } catch(Exception ex) { _ = RemoteLogService.ReportLogAsync(ex.ToString(), RemoteLogService.RemoteLogOperation.AddRule, RemoteLogService.RemoteLogType.Error); MessageBox.Show(string.Format("copy rule file\r\n{0}", tempItem?.SubItems[1].Text, "Stop")); continue; } } } else { MessageBox.Show("please select the rules that your want copy","Stop"); } } private void enableThisRuleToolStripMenuItem_Click(object sender, EventArgs e) { ListView tempRuleLv = GetRuleToolStripMenuItemSourceControl(sender); if (tempRuleLv.SelectedItems != null) { foreach (ListViewItem tempItem in tempRuleLv.SelectedItems) { tempItem.Checked = true; } } } private void enableAllRuleToolStripMenuItem_Click(object sender, EventArgs e) { ListView tempRuleLv = GetRuleToolStripMenuItemSourceControl(sender); foreach (ListViewItem tempItem in tempRuleLv.Items) { tempItem.Checked = true; } } private void unableAllRuleToolStripMenuItem_Click(object sender, EventArgs e) { ListView tempRuleLv = GetRuleToolStripMenuItemSourceControl(sender); foreach (ListViewItem tempItem in tempRuleLv.Items) { tempItem.Checked = false; } } private void editThisRuleToolStripMenuItem_Click(object sender, EventArgs e) { ListView tempRuleLv = GetRuleToolStripMenuItemSourceControl(sender); lv_RuleList_DoubleClick(tempRuleLv, null); } #region RuleToolStripMenuItem_Group //临时标记当前在操作的ListView private ListView _nowTempGroupRuleLv; //临时标记当前在操作的ListViewGroup private ListViewGroup _nowTempGroupRuleLvg; /// /// 更新组列表(移除item为空的group) /// /// private void RemoveEmptyViewGroup(ListView yourListView) { if (yourListView.Groups.Count > 0) { for(int i = yourListView.Groups.Count-1;i>=0;i--) { if(yourListView.Groups[i].Items.Count==0) { PutInfo($"group [{yourListView.Groups[i].Header}] will be remove ,because that no item "); yourListView.Groups.RemoveAt(i); } } } } /// /// 跟换分组 /// /// /// /// private bool MoveRuleItemGroup(ListView.SelectedListViewItemCollection selectedListViewItemCollection, ListViewGroup listViewGroup) { foreach(ListViewItem listViewItem in selectedListViewItemCollection) { listViewItem.Group = listViewGroup; } if (selectedListViewItemCollection.Count > 0) { RemoveEmptyViewGroup(selectedListViewItemCollection[0].ListView); ModificRuleGroup.ReArrangeGroup(selectedListViewItemCollection[0].ListView); RefreshFiddlerRuleList(selectedListViewItemCollection[0].ListView); } return true; } /// /// 选中的项是否都在默认分组(没有分组信息) /// /// /// private bool IsAllDefaultViewGroup(ListView.SelectedListViewItemCollection selectedListViewItemCollection) { foreach (ListViewItem listViewItem in selectedListViewItemCollection) { if(listViewItem.Group !=null) { return false; } } return true; } /// /// 确定项目是否都来自同一个分组 /// /// /// 如果不是同一个分组返回null,如果是返回分组 private ListViewGroup FindOnlyOneViewGroup(ListView.SelectedListViewItemCollection selectedListViewItemCollection) { ListViewGroup oneListViewGroup = null; foreach (ListViewItem listViewItem in selectedListViewItemCollection) { if(listViewItem.Group==null) { return null; } if(oneListViewGroup==null) { oneListViewGroup = listViewItem.Group; } else { if(oneListViewGroup != listViewItem.Group) { return null; } } } return oneListViewGroup; } /// /// 展开分组操作 /// /// /// private void groupToolStripMenuItem_DropDownOpened(object sender, EventArgs e) { ListView tempRuleLv = GetRuleToolStripMenuItemSourceControl(sender); _nowTempGroupRuleLv = tempRuleLv; if (tempRuleLv.Groups.Count>0) { moveToGroupToolStripMenuItem.Enabled = true; renameThisGroupToolStripMenuItem.Enabled = true; deleteThisGroupToolStripMenuItem.Enabled = true; enableThisGroupToolStripMenuItem.Enabled = true; unableThisGroupToolStripMenuItem.Enabled = true; moveToGroupToolStripMenuItem.DropDownItems.Clear(); //添加默认分组 ToolStripItem tempAddToolStripItem = new ToolStripMenuItem("Default"); tempAddToolStripItem.Click += new EventHandler((esd, ee) => { MoveRuleItemGroup(tempRuleLv.SelectedItems, null); }); moveToGroupToolStripMenuItem.DropDownItems.Add(tempAddToolStripItem); //检查无效分组 ListViewGroup onlyOneGroup = null; bool isSelectedAllDefault = false; if (IsAllDefaultViewGroup(tempRuleLv.SelectedItems)) { isSelectedAllDefault = true; tempAddToolStripItem.Enabled = false; } else { onlyOneGroup = FindOnlyOneViewGroup(tempRuleLv.SelectedItems); } //添加分组 foreach (ListViewGroup group in tempRuleLv.Groups) { tempAddToolStripItem = new ToolStripMenuItem(group.Header); tempAddToolStripItem.Click += new EventHandler((esd, ee) => { MoveRuleItemGroup(tempRuleLv.SelectedItems, group); }); moveToGroupToolStripMenuItem.DropDownItems.Add(tempAddToolStripItem); if(onlyOneGroup== group) { tempAddToolStripItem.Enabled = false; } } //确认MenuItem可用项 if(isSelectedAllDefault || onlyOneGroup==null) { renameThisGroupToolStripMenuItem.Enabled = false; deleteThisGroupToolStripMenuItem.Enabled = false; enableThisGroupToolStripMenuItem.Enabled = false; unableThisGroupToolStripMenuItem.Enabled = false; } else { _nowTempGroupRuleLvg = onlyOneGroup; } } else { moveToGroupToolStripMenuItem.Enabled = false; renameThisGroupToolStripMenuItem.Enabled = false; deleteThisGroupToolStripMenuItem.Enabled = false; enableThisGroupToolStripMenuItem.Enabled = false; unableThisGroupToolStripMenuItem.Enabled = false; _nowTempGroupRuleLvg = null; } } private void moveToGroupToolStripMenuItem_DropDownOpening(object sender, EventArgs e) { ListView tempRuleLv = _nowTempGroupRuleLv; } /// /// 添加分组 /// /// /// private void addToNewGroupToolStripMenuItem_Click(object sender, EventArgs e) { string newGroupName = ""; SetVaule f = new SetVaule("New rule group", "you will new a rule group ,and now set the group name.", "", new Func((string checkValue) => { if((string.IsNullOrEmpty(checkValue) || checkValue.Length > 30)) { return "error length of group name"; } else if(checkValue== "Default") { return "[Default] is a reserve name"; } if(_nowTempGroupRuleLv?.Groups!=null && _nowTempGroupRuleLv.Groups.Count>0) { foreach(ListViewGroup lvg in _nowTempGroupRuleLv.Groups) { if(lvg.Header== checkValue) { return $"[{checkValue}] have been used"; } } } return null; })); f.OnSetValue += new EventHandler((obj, tag) => { newGroupName = tag.SetValue; }); if( f.ShowDialog()== DialogResult.OK) { ListView tempRuleLv = _nowTempGroupRuleLv; if (tempRuleLv.SelectedItems != null && tempRuleLv.SelectedItems.Count > 0) { ListViewGroup tempListViewGroup = new ListViewGroup(newGroupName); ((MyListView)tempRuleLv).GroupSelectedSataus.GetSnapshoot(); tempRuleLv.Groups.Add(tempListViewGroup); ((MyListView)tempRuleLv).GroupSelectedSataus.ReCoverSnapshoot(); ((MyListView)tempRuleLv).SetGroupState(ListViewGroupState.Collapsible , tempListViewGroup); foreach (ListViewItem tempItem in tempRuleLv.SelectedItems) { tempItem.Group = tempListViewGroup; } //((MyListView)tempRuleLv).SetGroupFooter(tempListViewGroup, "Group contains " + tempListViewGroup.Items.Count + " items..."); RemoveEmptyViewGroup(tempRuleLv); ModificRuleGroup.ReArrangeGroup(tempRuleLv); RefreshFiddlerRuleList(tempRuleLv); PutInfo($"group [{newGroupName}] add succeed"); } else { MessageBox.Show("please select the rules that your want ", "Stop"); } } else { // do nothing } } /// /// 重命名分组 /// /// /// private void renameThisGroupToolStripMenuItem_Click(object sender, EventArgs e) { string newGroupName = _nowTempGroupRuleLvg.Header; SetVaule f = new SetVaule("Rename rule group", "you will rename rule group ,and input the new group name.", newGroupName, new Func((string checkValue) => { if ((string.IsNullOrEmpty(checkValue) || checkValue.Length > 30)) { return "error length of group name"; } else if (checkValue == "Default") { return "[Default] is a reserve name"; } if (_nowTempGroupRuleLv?.Groups != null && _nowTempGroupRuleLv.Groups.Count > 0) { foreach (ListViewGroup lvg in _nowTempGroupRuleLv.Groups) { if (lvg.Header == checkValue) { return $"[{checkValue}] have been used"; } } } return null; })); f.OnSetValue += new EventHandler((obj, tag) => { newGroupName = tag.SetValue; }); if (f.ShowDialog() == DialogResult.OK) { _nowTempGroupRuleLvg.Header = newGroupName; ModificRuleGroup.ReflushGroupDc(_nowTempGroupRuleLvg.ListView); ((MyListView)_nowTempGroupRuleLvg.ListView).SetGroupState(ListViewGroupState.Collapsible, _nowTempGroupRuleLvg); } } /// /// 删除分组 /// /// /// private void deleteThisGroupToolStripMenuItem_Click(object sender, EventArgs e) { DialogResult dialogResult = MessageBox.Show($"group [{_nowTempGroupRuleLvg.Header}] will been delete ,and his rule item will move to [Default]", "Delete group", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if(dialogResult == DialogResult.OK) { //foreach(ListViewItem listViewItem in _nowTempGroupRuleLvg.Items) //{ // listViewItem.Group = null; //} for (int i = _nowTempGroupRuleLvg.Items.Count-1; i >= 0; i--) { _nowTempGroupRuleLvg.Items[i].Group = null; } _nowTempGroupRuleLvg.ListView.Groups.Remove(_nowTempGroupRuleLvg); ModificRuleGroup.ReArrangeGroup(_nowTempGroupRuleLv); RefreshFiddlerRuleList(_nowTempGroupRuleLv); PutInfo($"group [{_nowTempGroupRuleLvg.Header}] remove succeed"); } } /// /// 启用分组包含的项(勾选) /// /// /// private void enableThisGroupToolStripMenuItem_Click(object sender, EventArgs e) { foreach(ListViewItem listViewItem in _nowTempGroupRuleLvg.Items) { listViewItem.Checked = true; } } /// /// 禁用分组包含的项(取消勾选) /// /// /// private void unableThisGroupToolStripMenuItem_Click(object sender, EventArgs e) { foreach (ListViewItem listViewItem in _nowTempGroupRuleLvg.Items) { listViewItem.Checked = false; } } #endregion #endregion #endregion #region Url Filter private void pb_getSession_Click(object sender, EventArgs e) { //_= new WebService.RuleReportService().UploadRules(fiddlerModificHttpRuleCollection.RequestRuleList, fiddlerModificHttpRuleCollection.ResponseRuleList); if (OnUpdataFromSession != null) { this.OnUpdataFromSession(this, null); } } private void cb_macthMode_SelectedIndexChanged(object sender, EventArgs e) { if (cb_macthMode.Text == "AllPass") { tb_urlFilter.Text = ""; tb_urlFilter.Enabled = false; } else { tb_urlFilter.Enabled = true; } } private void tb_urlFilter_DragEnter(object sender, DragEventArgs e) { Fiddler.Session[] draggedSessions = (Fiddler.Session[])e.Data.GetData(typeof(Fiddler.Session[])); e.Effect = (draggedSessions == null || draggedSessions.Length < 1) ? DragDropEffects.None : e.AllowedEffect; } private void tb_urlFilter_DragDrop(object sender, DragEventArgs e) { Fiddler.Session[] draggedSessions = (Fiddler.Session[])e.Data.GetData(typeof(Fiddler.Session[])); if (draggedSessions != null && draggedSessions.Length > 0) { tb_urlFilter.Text = draggedSessions[0].fullUrl; } } void rtb_MesInfo_DragEnter(object sender, DragEventArgs e) { Fiddler.Session[] draggedSessions = (Fiddler.Session[])e.Data.GetData(typeof(Fiddler.Session[])); e.Effect = (draggedSessions == null || draggedSessions.Length < 1) ? DragDropEffects.None : e.AllowedEffect; } void rtb_MesInfo_DragDrop(object sender, DragEventArgs e) { Fiddler.Session[] draggedSessions = (Fiddler.Session[])e.Data.GetData(typeof(Fiddler.Session[])); if (draggedSessions != null && draggedSessions.Length > 0) { for(int i =0;i text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 17, 17 AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABm CgAAAk1TRnQBSQFMAgEBBQEAAegBEwHoARMBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/0IAA1UIAANNMgADVQEA BhQBAANNNQACFASSAhQ2AAMUBpIDFDMAARQMkgEUMgABFAKSAf8BkgH/ApIE/wGSARQyAAEUAZIF/wSS Af8BkgEUMgABFAGSAf8BkgH/AZIB/wGSBP8BkgEUMgABFAGSAf8DkgH/AZIB/wSSARQyAAEUAZIB/wOS Af8BkgT/AZIBFDIAARQMkgEUMgABFAGSATgBkgE4AZIBOAGSATgBkgE4AZIBOAEUMgAOFNIAARAB9A0A AfEGAAH/AgAB/wYAAeoBEgHyFAAB8R4AAe8BAAHqAwABEAMAAf8BEgH3AhIB6wsAAf8BAAGSAwAB8QUA AfACAAHvAwAB8hEAAe8KAAESAwACEgsAAf8EAAHxBQAB8AUAAfISAAHvCgABEgL/ARIBAAISDwAB8QUA AfAEAAHzEwAB7woAAfQBEgEAAhIBAAFtARIGAAH/BwAB8QUAAfAYAAHvCwAB7AESAQACEgEAAewBEgYA ARIGAAH0HgAB7wwAAe8BEgEAAhIBAAHvARIlAAbxDgAB8gESAQACEgEAAfEFAAHxBu8GAAHwJwAB9AES AQABbQESAQACEhEAAf8QAAHyFgAB/wESAgACEgEAARIeAAHwHAABEgHqAQACEgH/DQAB/w4AAfACAAEQ AgAB9BcAAesB/wISAW0PAAH/DAAB8QIAAQ8CAAH0GQACEgH3BAAF7wMAAewCAAH0DwABDgQAAfQEAAHt GQABEwgAARAB/xAAAQ4HAAH/AbwBAAH0SAABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEB FgAD/wEAAv8GAAGPAfEGAAGIAREGAAHwAQ8GAAHAAQMGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGA AQEGAAGAAQEGAAGAAQEGAAGAAQEGAAGAAQEGAAL/BgAC/wYABP8BnwH/AQABzwGPAf8B8QEAAYcB/wEA AYMBgQH/AccBPAGJAf8BAAHpAdwB/wHPATwB0AH/AQAB/AHCAX8B3wE8AeABfwEAAf4ByQE/AQ8BPAHg AT8BAAH+AeQCnwEAAfABHwEAAf8B8gFPAv8B+AEPAYEB/wH5AS8BgAH9AfwBBwH/AYAB/AGTAYAB/AH+ AQcBPwGAAf4BZQG+AfgB/wEJAb8BgAH/AcgBvgH5Af8BkAGfAYAB/wHBAb4B+QH/AeEBnwGAAf8B4wGA AcMB/wHjAcABgAL/AYABzwH/AfcB8AGACP8L 159, 20 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 a8yb9z+yGKdx213yIgAAAABJRU5ErkJggg== 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 Ax04yV1ug3OzAAAAAElFTkSuQmCC 353, 21 17, 60 empty mean replace all body start with "<regex>" mean regex replace ,it will use regular expression to replace the booy start with "<hex>" mean hex replace , it with replace the booy with hex mode (like: 0x01 0x02) start with "<recode>" mean change the encode character set for the body (eg: <recode>gbk) if you change the body the content-lengh will auto adjust string mode wil use utf8 in your body hex mode will removes Transfer-Encoding and Content-Encoding headers 116 iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABGdBTUEAALGPC/xhBQAABPlJREFUeF7t nN+LVHUYh0ebOWOhJSVdlBQFEhleCYkUZTflTUURFEE3UVDQH9CVgSReKBEJXURdBIEQdNUPkoLpnNmW OeeMWdDCgoUJkVEomkQp6vR5t3Pc2Zl3Zs+ZHVjP+34eeNDdu/2+z+6cff2ONUIIIYQQQgghhBBCCCGE EEIIIWQ1aJ1Yl/2NuKPV2dyMkq+zj4gngqiztRkmp5phfCL7FPFCPUweCqL4L3z39xiAM4IofSaIkosL w2cAvmhE8StXB88AfNEIk4NDw2cADmi16ni9/1gdvsgADNOaW48hfzM09H4ZgFFa3U142PtRHXq/DMAg 7fTuZhT/og58UAZgi0b76Ha85p9Wh63JAOxQbye7gzD+Rx30KBmADTD45/Gaf1kd8jgZQPXB4Peowy0i A6gwvd4afOd/oA62qAygoszOXo+Hvc/UoZbzt3o73bXqznQfzL4ysiydzo34zk+VYVZW+dfJ7KsjY5n9 /na85s9rh1hlGUABrl7iUA6w6jKAZVhyicOgDGAMzTB9YsklDoMygBHIJQ4M/4p2aJZkAAoY/AHtsCzK APpZ7hKHQRlATpFLHAZlAELRSxwGZQBlLnEY1HUApS9xGNRtAI12dwd+7P+tHYonEcC57EicsfDEnxzW DsWT7p8BEMFe7WC86D4AIQiTZxGC6ZXvKBlARj1KH0AIZ7VDsmzBAB7P/rRNM+xswaGcHDwkyxYM4H3Y gZsWPjJNHN+CQ+lqh2XREgH04Em4VT5hm+PHm3gm+FQ7MGuWDEA8Dx+Dxun11jSi+C3t0Cw5QQDiJfga tA8ieAk/Dcq/8aMiThhA7ntwLbRNPew+ighMbg1XGID4JVwPbROE3W3NMP5dO8QqO4UAxDl4BzTOzHe3 4cDmtIOsqlMKQPwT7oDGmZnfgJ8ER7TDLGmV3hlUJADxAnwOGqfXWxuE8YfKUItbrfcGFg0g9w1onyBM XsfD4WQ3h20HIB6GAbRN0I6fQgQX1CGP034Aoo/1cSNK78fD1Bl10KP0EYDoZH0cxndhsD8PDXqUfgIQ nayPW8c24idBRx34oL4CEC/Dl6Fxut0GHg4/UYfer78Acg9B++tj/Jr4pjr43GIBbIG7rgE/h9owJ/UI 3ABt02inLyCESysI4F2oHaAFfayPZduGCM4zAFUf6+MgPHovBv4rA1CV9fHT0Djf/nArfkNYvGrGAAbd A43Tf9WMAWg6WB/LVbMweZsBjNTH+jgIkyKvex4DEJ2sj5fHawCirI8fga7xHIAot48drI9H4z2A3Heg /fWxAgNY1Mft4wEYwFKd3D5ehAEMK+vj7dAFDGDYs3AndAEDWOopeA90AwNYdB5uhq5gAP+bwpugOxhA rfYFXAdd4j2Aj6DLBVCO5wD2Qvd4DOAKfBES4C2Af+GTkGR4CkD+nwI3C56ieAlAFjz3QTKAhwBcLniK YvWdQbly/+9mSK5xpvnewFzXC56qMe0A3C94qsY0A9gHScWYRgBc8FSYlQbABU/FWUkAXPAYYNIAuOAx wiQB/AS54DFC2QDkBg8XPIYoE8BXkAseYxQNQBY810FijCIB7IfEKOMCkAXPq5AYZlQAFyEXPA7QApAF z8OQOGAwgD8gFzyO6A9AFjx3QuKIPIBjkAseh0gAsuC5YeEj4o7d2Z+EEEIIIYQQQgghhBBCCCGEEEII IatErfYfshmLCG3+0G8AAAAASUVORK5CYII= empty mean replace all body start with "<regex>" mean regex replace ,it will use regular expression to replace the booy start with "<hex>" mean hex replace , it with replace the booy with hex mode (like: 0x01 0x02) start with "<recode>" mean change the encode character set for the body (eg: <recode>gbk) if you change the body the content-lengh will auto adjust string mode wil use utf8 in your body hex mode will removes Transfer-Encoding and Content-Encoding headers Request Modific : creat a request change rule Request Replace : creat a request replace rule , it will replace all the http request Response Modific: creat a response change rule Response Replace : creat a response replace rule , it will replace all the http response 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 967, 21 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 AElFTkSuQmCC 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 QmCC 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 AICFsGTJfwFouObwj+1gXgAAAABJRU5ErkJggg== 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 AElFTkSuQmCC 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 YIlGeAAAAABJRU5ErkJggg== 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 JEJDw/8DFbcRYKHc1s4AAAAASUVORK5CYII= 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 Af0AlhQlEX+DAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAREklEQVR4Xu2dC3BcZRXHg0BBKdm9d1Nq FUUeiuCLhyiKbxFEQRwUFRVRwPcUxhkEFbWOClZe1ST3flkKVlGYISIqoOggVqUFR6tQNKS537fJMCC+ HYsWhCaN52wOGjYnySa7d+/r/5v5TUrI3v3O+c593/t9XQAAAAAAAAAApvBNdJYX2l7PuHV+aKu+sYEX unPKJjq+Z6D2zK5V63eRPwUZprRmrOz3Ry+uBO491N8X1Pua5H6n/76wMlB7ofwpeIySsYdSkibnkpK3 jVaYW+jneT2hO1w+ClLOPuvGdvfD6Gg/dKup7zZRX+5o7Nvpch/LR8FjUGIubUzU/LoxSuaann53mCwG pITlF2/eoxzad1M//ZBWiodm9t2cjtPRxFNlUaBrcHJnKvQHlEQtxN/TCrPS77XdslSQALyxor78Gvkv pY+alj5/jiwSeKZ2lJakxUiJfZDPXbqrdn9ZPIibVZNPoNyfTG6c3hctukGWDvzAfklJUKtO0B7lRhx+ xUh1065TJ9puWMl/q44vrY70yDcVG9ri360kqF3u8Iz7diXccqB8HWiV+h7DncbngEq+2yafw8g3Fhfe SlAy5ryq0SYn6GTxqkrflqfIV4NFIFej7lTy23Zpz3SlfG1xqYTuzVpy4pIvFdMe6zN86VGaAJqAzhOf S7n7qZbTuPSMHZGvLy5UrBdryYlfVysH9gRpRix41VrJH7AHV4LaayvGneoF9lyK9zL6/ioV29fp56Bv 3A20pbyF/r2Bfrfp//L9Hvdj+Ztr6p8JbJ8XuM/TRuWjdOx/Iv3uSL/X7t01OLREvrLtcAzUjjWUr+30 fUoeY3XHclPbS5pSTGgr8RMlMZ0zsD8o9Y3sK81ZMHv2D1foWPmVFMeH+eoZb2XJiNymfl9M0vf9iX5u pp/Xkxd4QXRKKYgO6eq1u0lTFwyfA8hy1e/siMYeK80pJol3AEkn8f+mFeVsPvmUZqksC9wBfhC9t74l D+2taWh7E45TO2mFdd8hv8CP7fCjHhKSCv3d0+hzP2xYTiJSW4p7P4S3vlpSEnQjrQAH1Rs3OLkzb4Hp 0GIl/X6QOqrVG5lpcoLkvQ0/9/a2nurwinrMk5M70e8+RP9v67S/TVTK+9fqbSsi5XD0+VpSEvY/ctiX miLphPW9jLG/0f5fwv5IyqV40GHNMUpCIJymu1PKpXjwlR09KRBOSXu2P0q5FA8vjD6uJQXCaY7z+aCU TLGg3edFSkIgfJxLe+0yKZliQecgl2gJgXC6e60dXS4lUyxoD7JaSwiE0y3sU71840pLCITTne/GZm7x Avs5LSEQTndZMLRUSqZY8GMEWkIgnOYEv5glJVMsPFN7h5IQCP8nbUTvl3IpHu18Fx3m1jukXIqHV609 XUkIhNMdlHIpIKvW7+J1+L0JmC2pPi6UaikmlIR2DhUD82YQnSSlUkw8476iJgZCkg/DpVSKCa5kwdnk l9SkTIpL9xVDPiVjvDE5ENIKgmF/GErGhsbkQOib6C1SIsVG3vvWkwSL6tYV1QeeJCVSbMomermSIFhg vdD+mgeRkBIpLjKyiWtMEIT8tLeUSUEZHFpCifhZY2IgFHfwuAVSLcWDEvDNhoRA+DjpUOthb8C9REqm OHjGnaklBMIZGntfKbzXk9LJP6Uw2o+OLx9UkwGhZuC+JeWTc1at38UP7O1qEiCcQx6QW6oov9Ax5Xla 8BA24T9yPcIJB0dBFmrMW9hmjb1cyil/0N6DJ43RA4ewOSd6Qne4lFR+4NlmObiGYCFcsLShXS9llR8S n0kK5kovdMdJaWWf8sDICyioTsxkCwsi7UVulfLKPn7ortaChLAV+bBdSiy78CystII8qgUIYWu6q6XM sgude3xRDw7CVnXbMz9NNB0rWj04CFu3HNiPSKllD78/erEWFIRt07ifS7llD9/Yy9SgIGyfE76Jniol ly34MWUlIAjbrFspJZcdlgXuAD0YCNurF7rvSNllB2r4+xoDgTAm/5K5AR540C8lEAhjsRJuOVBKLxt4 oY20QCCMxcCeIaWXfnhOOWo0nr2CndPYQMov/cjDiXogEMbjj6T80g+PqaoEAGFs8hMbUn7phxqL985h h3XbMzMbLjW4OjMACOO1u2r3lxJMN17ortMCgDBOK8HoEVKC6cY39mYtAAjjtBK4V0sJphtq7G2NjYcw bssmOl5KMN1QY3/b2HgI45bnu5QSTDd0DrJFCwDCWM3K3XSsIDARjT1dSjDdUGN/N6PxEMZsZibb8UN3 pxYAhHGaoXMQ+ystAAhjNYhOkhJMN9RYzDsIO643UHuDlGC6oT3I97UAIIzTzMxlSCvIVVoAEMbqgD1Y SjDd0ArSqwYAYYxW+rY8RUow3XiB/ZwWAIRxuvdl9z1RSjDdeKH7gBYAhPHp/i7ll374oTE9CAhj0ti7 pfzSj0y3pgcCYRwae7OUX/rZs3+4ogYBYVxmbfZbOib8mxoIhDFI573nSOllAz+wt2uBQBiHldC+SUov G3jGrdMCgTAWg+ggKb1sQHuQj6mBQNhmvdBu61q1fhcpvWxQ7o9eoQUDYQxulLLLDjI+70RDIBC2XTpB /6qUXbagxg81BgNhu83Mm4SN+KELtYAgbKfl/tF9pOSyBTX+5MZgIGyzTsoteyzttcsoAJyHwDi9Qsot m3jG/VIJCsK2WAndm6XUsgkF8EktMAhb1QvtQ8sv3ryHlFo24TucWnAQtiqPfSBllm380N2lBQhhK3pB dIqUWLbBYycwBreuqD7wJCmxbDN1Ncs9qgQJ4eLM2vsf8+Ebd40aKISLsGTsoVJa+aAndIdrgUK4UOnk /FYpq3xBwWHmKdiy5cCeICWVL/yB6HVawBA2q2fsb7omJ3eSksoftHtcrwUOYTNmZoDqxeKZ2lEU6I7G wCGcX/cLKaN8Q8F+c2bwEM7peCmIDpESyjc91eEVFPDWhgRAOKteYPukfIqBF7j3a4mAcKZuzO+13VI6 xYECv0lPCIT/c6Ji7KukZIrFsmDsyV5o/6gkBULRrZZyKSY8bRae04Ka9TvmWRvvKg58E52lJQgWWVfj h1ylRIAXujV6omDxdH+rhFsOlNIAdVZNPgFP/ELaUP6LfKlUBXgcg5M7+4H7lpY4mH/pnGNbYa9YNQ2d lHnGfkNLIMy1/+DHkKQKwJxMTu6EmXKLIx1S/aEcjj5feh80S9nYd/ExqZZUmA+pf2/Za+3oculysFB6 +kef5WNUlDw6zkcJfN4pXQ0Wyz7rxnanLc1XlSTDLGrsfTx/jHQvaBc8D51v3KiadJgFJ/zADXRfMeRL l4J2s/dl9z3RC+15ODfJltRnv6afR0o3grgp9Y3sS0m/npKOtxNTLG3I7qdzyNNy/R55mvH6as+jFeUq 6oTtWgfBpHQ1P7Bn8x5fuir/8Ew+lcCd6Bn7YT7M4S1DObSvLIX3evInidFdtftTx1TJ/zy+o2AnrR9K megt/OiQdE3+oYBfRMFvbEzGNHmSnM2UnAt5iy4fS4Sl1ZEeWnFX8vAwDW2Esen+Sn3fy4MDSjcUi/ru Uk3MrG6oD+6V8HEnr6zUlkunjoPVdsJFSivENvJ6PqLoGhxaIikvJvXdppKkJrwtFWOo0orK7fADdz4d F99O7RpvaCdsQqoDW78fZeyxfG9KsgsqpvYa2oss8iTYbfcC9/mu6qZdZXGJw4dhnnFv486eWvlxgq/I Vwd5Gu8raIU4vWeg9kxJH9CgRL2PXPSWlwrx1jSczGvwNF78mDWdt3yCVparybvIR7Q48inHSjEbdw1P mUcbjuPS2lephs8rKHkP6kmeX/rscCmM9pPFpRva43n97jm8p5F5FtfySk6FNEb/zuIhGreZ9gjuJoqj lyc14gkweYo8vPfdRnhX2+IVor/4A/ZgWVzmKK0ZK1MMdzTElAXHK8adKmGAWBkcWjK1K7bblI6YV9qT 3M93wmVpmYGn/KKYf6XFlBEnqP3vlHBA3PCegJLOJ3JaZ8wpdZTds3+4IotKP/wSV+iu02LJkpT3h3v6 3WESFYibypVb9qRDrp9onTGfVHA/zsodVzr/+ogWQzYt6FCeidFrd6OT2W/rnTGvn5WlpBa+sLDYw8m0 Sv31FQkPdITqpl19Y2/WOmNu3SNJP54yH9TOwZntzrzjuZsIM+0sC4aWLuYklj+T1kuNlWD0CGpjPh+p N+4GCRN0Cn4Bnwp+wQNSe4E9VxaRKlo4dMyCOzxTe66ECjqFH9hjKPn8hK/WKap8dSVtw02WzPAzqG25 fm6LNgDrJFzQSWj3/WWtQ+ZxY5qe2fLD6NNKG3MlPxlRqJeaUgOftId2c2OHzGvgBmQJiUPtWdQ9nswZ 2LdKyKCT8AOAaofMp4nOkkUkBj9So7Ytjwb2WgkbdBrqgMVcIuXj/pNlEYngmeiDDW3KrXT+92cMqpAQ /B47dcBDWsfM4zi/hyCL6Ti8VVXalFsxH0eC+KFbrXVKE+6gleu8JLZu9L1WaU9+DewZEjroNHJv5GG1 Y5rQC90tPLe6LC52+AUq+t4FXabOunj0JGH4ervWMc1KK9ifKoF7T+wPN/JMV0H0Xq0N+dbdKBkAScB3 bKkj2vDIhrurPmJKm1cU2ks9beq+R/2NQeV78y3Ff4+kAiTF4h5mnNV7efh8fi1WFr8wBid35hmNaM90 Ia0UdyrLL5R8CIwrWQnjBe71Wue0Kh9+1a86GfsZL4hO8YLay3gQM55bhJ9Y5f/m8Zvob86mlaqPPnMb bTEx+HWD/MakdBVIBD6+x2Q4qRXzkqcA2nIfp3UOTF6+ZyXdBJKEL9tqHQSTddHnc6C9yGPkWxs7CCZr eWDkBdJFIGk8U3sHdQomv0mRWEFShh/YL2kdBZMRc5WnjcnJnfzQhVpnwc6b9sEziglf+jX2cq3DYGfF CpJi+CYedVKu3/9Ou7iKlXL4TrsXuj9onQfjFytIBvCqtRJ1Fk/GqXYijNEMj7pfOKjDjqQT+BtndCKM T54rBGQLmfnpe7SyPKp2KmyfWEGyS316ZxOdRSfzt9PKEuOcgu6Rwj7pixUkH/AYwLSiHEN7li9OTb3A 01QvbA8jrwA7+vnd+nJC9/b6MJxT43mtnf63RbFSHXm2pBjkDn4Bqlp7etlEL/fD6Oj6/HuhPfkx6ffH 088jeSoDXsHkUypFvS+DkU1AU1CxFPIqGr9gJikAYHbocM1oBZR3MRc6aApaQQr5fNiywB0gKQBgdugc JNAKKO9iBQFNIQM7qEWUZ7urdn9JAQCz44W2VyugvMtX+CQFAMwOD8OpFVDexQoCmsIL3RqtgPJuqW9k X0kBALNDxXJpY/EUQR5MQ1IAwOz4gb1EK6C8ixUENEVhB5PotXtLCgCYHd+4T6kFlHN5XhRJAQCz44fu NK2Acu4/JXwA5sY30YuUAsq7d0j4AMzD4NASz7h/K0WUY91FEj0A80MFc5NeSHk1OlpCB2B+ZOxgpZDy Jw+1xC+cSegANEGv3Y0K536toHJn4M6XqAFonkroPqoWVK50f/V7bbeEDMACoMMOKqLfziyqHGns6RIt AAuHRzrxQrtNLa7M627CzLagZcrGvosKKleT/dD51XApvNeTEAFoDdrarqTCyslK4sZ4iCQJDYD2UDHu VBlwTim6bEjt39RTHV4hIQHQXkrGHkqHJ/doxZdyJ/hNSb58LaEAEBP8KEpgz61fItWLMW3+rBKMHiGt B6Az8OPhdMjyISrADeTEtIJMge7v9HOtN+BeIs0FIDn4ipAXRm+kw69zaKXpp8OZdVSggx0xsNfSzyqt FKvpe8/s6XeH8dyP0jQAAAAAAAAAAKmkq+u/GKGRs+2u7R4AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAEq0lEQVR4Xu3asWucZQDH8SwiQqFe0iqI DgqiuDiom5Ooi7ujCoIOLjo4C07i4NByl4ib/gUO4j8hboU2d62Dq5P/gMZ6pX4hPjR4eU1ynw/8thce 8vB+h9zdDgAAAAAAAAAAANthb3Hzud3F8obZRjZffrJ+tS6GRw9uvXj0h/1htpmtvli/WheDQGyzE4jZ YAIxG0wgZoMJxGyw7Qvk59358gezu9tf/njMO/KPbVkgs/3V2+tHYWfn2vLh496T+xMI20wgnUAIgXQC IQTSCYQQSCcQQiCdQAiBdAIhBNIJhBBIJxBCIJ1ACIF0AiEE0gmEEEgnEEIgnUAIgXQCIQTSCYQQSCcQ QiCdQAiBdAIhBNIJhBBIJxBCIJ1ACIF0AiEE0gmEEEgnEEIgnUAIgXQCIQTSCYQQSCcQQiCdQAiBdAIh pgxk7/rNJ3YXh6//n5stVh8c/4f+PYEQUwayO1++f/whZ2cCIQTSCYQQSCcQQiDdVIHMFoef7u4vP9v0 /vo/b30EmyCQbqpAji72t+PO/6/bm995ZX0EmyCQTiCEQDqBEGcpkL356p2jZ948ze0tVh8dd/a9CYQ4 S4FcXhw+s3701Owd3H75uLPvTSCEQDqBEALpBEIIpBMIIZBOIIRAOoEQAukEQgikEwghkE4ghEA6gRAC 6QRCCKQTCCGQTiCEQDqBEALpBEIIpBMIIZBOIIRAuskC2V/OZ4vlt5ve5eu3nl4fwSYIpJsqEM4JgXQC IQTSCYQQSCcQQiCdQAiBdAIhBNIJhBBIJxBCIJ1ACIF0AiEE0k0VyO7B4RuzxeFb9uDb+/rW8+vrm45A uskCOaUfK17srb5cX990BNIJ5CxPIAKxwQQiEBtMIAKxwQQiEBtMIAKxwQSyNYFcura8+tg3dx63B9/V +Y1L6+ubjkC6qQLhnBBIJxBCIJ1ACIF0AiEE0gmEEEgnEEIgnUAIgXQCIQTSTRXI0VnfzRbL7+3Bd/Qy vru+vukIpJsuED81Ofn81EQgNphABGKDCUQgNphABGKDCUQgNphAtigQH/OedEcvo49514+emrMSCOeE QDqBEALpBEIIpBMIIZBOIIRAOoEQAukEQgikmyqQo4v9ZbZY/W4n2Hz1+fr6piOQbsJAfJN+4vkmXSA2 mEAEYoMJRCA2mEAEYoMJRCA2mEC2JpDZ/uGHR+d9bA++2fz2q+vrm45AuqkC4ZwQSCcQQiCdQAiBdAIh BNIJhBBIJxBCIJ1ACIF0AiEE0gmEEEgnEEIgnUAIgXQCIQTSCYQQSCcQQiCdQAiBdAIhBNIJhBBIJxBC IJ1ACIF0AiEE0gmEEEgnEEIgnUAIgXQCIQTSCYQQSCcQQiCdQIhtC2Tn658emi1WT/3bnvzq10fWT8IW BgInIRAYEAgMCAQGBAIDAoEBgcCAQGBAIDAgEBgQCAwIBAYEAgMCgQGBwIBAYEAgMCAQGBAIDAgEBgQC AwKBAYHAgEBg4CwFsrd/+7UrB7efNTsr2z1YvnDcu3p/EwZidv4mELPBBGI2mEDMBhOI2WACMRtMIGaD bTCQu58rzw/fM7sou7JYvbR+vQEAAAAAAACAE9jZ+RMqnNK0L+oEBwAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABGdBTUEAALGPC/xhBQAABg1JREFUeF7t nV2oZlMYx4/PRL5qfEyEklLKJEUhKcodt5qSkCFKk48x0ZAmHxfCyPi4YArDBReSC4qU4oamNOICSckF ETJJPv//OZ16rf7nPWu97373Xms//1/9rk7ts/daT/vZ73qevfaSMcYYo7kDfgL/tU26F94Lj4BFHAX3 QHVQ254MhGNgNk9AdSDbri/AbL6G6iC2XX+FB8I1ORGqA9j23QDX5Ei4D6oD2Hb9E54As3gKqoPYdn0Z ZnMc/AmqA9n2/A2eDou4EqqD2fa8Ec7ES1AdMPVveC40/XAm/AOquUh9C84MF4S+g+rAqV/Cw6BZLAfD 3NVZpnGm87m4BKqDK3dCs1juh2rslUzjnVCyMsiAMYuBaZbpVo176m7YGby18xav/lEqUwZTh+mWwedg sOgz+9kB1VgrF3YXHiT/mKLnsCfhwuj9CdTU90ust9+gZj8s46qxTe11LWYzVCehvAGa2ShZjd0Oe+MA +B5UJ5LKdehToCmjpB7DtMz03Cvr4S9QnVDqB5BBY/Jh+lRjmcp0zLQ8CNdAdVLKO6HJ4zqoxlB5GxyU 16E6sdRBI7UhmC6ZNtUYplZxZz0Wfg/VCaYOkqsagpPJSVVjl1rVs9XlUJ2k8kFoNLdDNWbKa2FVPAfV iaa6d0DT/PoK3z75BqoTTnXvwP8ZzQrrBfAfqE48lY2nZhku4qgxUlZfY3kEqhNXunegrMq6C1bPofBz qC4gNXrvQEmNn+m1+CXPoTgb8kUEdSGpRf3qI4OlWzUmqUyrTK9NcQ9UF6OM2DtQUuN/FDYHX0T8GKoL So3WO1BS42c6ZVptEr6N8jtUF5YaqXcg930LplGm06a5GaqLU26CY6ekxr8NjgL3DixTUuNn+sx6n78F 3DuwTG6Nn2mz+GXO2rkKqotV3gXHBlvj1LUqb4GjJGrvQEmNn+lytLB3IPfnz1h6B0pq/EyTTJejpmQB 5CHYOmyFU9em3AhD8DRUA5Daeu9ASY2f6TEMJUWQVnsHSmr8bKljegxFSRmUd4zWeACqa1GypS4k7A9U A6JsqXegJLifhWEpuU220jsw2hr/oih5UHoF1k7uHotN1vgXBbelV4OkrLl3INpP3M4oWSyptXegpMbv F2QEJculNfYOsLVNnWuqX5GbwvVQDZpy5t0vF0BJjX8LNFPILZnyblFDybSkxj/mUndntNY0URKwY252 6ZSSW+pWOBRMQ+qclN4qp5DczZGGapxs/aG1empunR7Dz9YmKFlYeRj2BVvW1DkoI7700imPQzWwqX0t rTLd5C5dvwjNnNRUXPGLrwPB8mruy6bPwEXBNKP+p7Kl8nUT3AfVQCsX0WBRsvkFv69gOqbkZdOuW6y8 /U0llLxs2mWTJdOK+h+p3gCrB26FavCVF8N5OQvm3vr5PQXTA+9CNQGpz8N5eQyqY6d+BE1PnAz5NWw1 EZN+COflTaiOneoaf89wp0w1EZPyoXFecqp93gh7AM6BajIm7SIA3obq2JNeBk3POACC4wAIjgMgOA6A 4DgAguMACI4DIDgOgOA4AILjAAiOAyA4DoDgOACC4wAIjgMgOA6A4DgAguMACI4DIDgOgOA4AILjAAiO AyA4DoDgOACC4wAIjgMgOA6A4DgAguMACI4DIDgOgODkBMBfcCc8Gs6KA6BScgJgxR/gJjjL1zocAJWy AarJmOYeeB4sIWePIAfAAJwE1WSsJff82wXXwRx8B6iYz6CakBx/hpvhQXAaDoCKKfmgxGpy+/cL4Wo4 ACrnfJj7+ZZp7obrYYqfARphI/wWqgnKdR+8Gx4CV/AdoCEOh9th7o7iq/kVvBQSB0CDnApfhWqySnwD 8qej+tukDoBK4cPdp1BNWpc6ACqGXxq5CXI1UE1eFzoAGoD1gB0w9+NTJToAGoL7+r8D1UTOqgOgQa6A X0A1oaU6ABqFv/e3wJyvj0zTAdA4x0MWiHI/DpXqABgJ/OQbvzOkJnma/kroyLga5n66np4GzchYWVZW Ez7p+9CMGC4rvwbV5P8Iz4AmABdBfo6Wvxj2wm1wnmZTY4wxZjiWlv4D0eHpsxN2qSgAAAAASUVORK5C YII= iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH3goaCxoRRzxNbQAABHdJREFU eF7tnc2rdVMcxw/K60QI5TUhfwGZGagHoZDCkH+AsTKgnqQYmBgaPCOUEUqSATEgM1J6vJSRAUbk3fdz Q6t91j33vNx923f/Pp/6DJ519j5Prd/37Je11t17ISIiIiIiIiIiIiIiIiIic+bceEW8WktIran5HjfF V+Pp+K2WkFpTc2q/eDf+rSWl9os/mgatJbXvfqB17Db+Hn/VWUlNe7VeamDDp+KJeJfOQmp5MvZCsNRA WthB5sX9kdoO673UwEakRubFg/G3OKz3UoMBmCcGoDijBeCMyIgS55hb4jlxP86Lt8b74g2Rfffj0nhH vD1eTIPsxGgBeCR+E/nyH+NzkUIPoe3F+FPk/2A48p7Y4/r4Xvwl/hzfiddE2Z5RAnBR/Di2+1Pgm+MQ fvl81m77YeQ7hrwQ2+3wiSjbM0oAroxfxeH+HLqHcNjns3Zb9uU7Ws6Kr8V2O+TocWaU7RglABzWX4/t /l9GDuFDOOdz2G+3PRX/n5ZseCy2YeFUwDWGbM9o1wA3RqYWv44fRAaRehd3tHHO57DPL5/iXxt7nB+f jJ/HzyKH/951hazPaAEACsah/MK9f62Gcz7b9n75LZwKLvtXD/27M2oAZPoYgOJsFIA7o8yLjQJwb+S8 e7bOQq6nHo5rBeDPyODOG/FNnYXU8tNIbYf1XmrQWnYbtY7dRq1jt1HruNTAhcL78ZXIEK8ef6nlR3Gt i0BvA+cntVz7NtCBoHniUHBxDEBxDEBxDEBxDEBxDEBxDEBxDEBxDEBxDEBxDEBxDEBxDEBxDEBxDEBx DEBxDEBxDEBxDEBxDEBxDEBxDMBE2eQ5i7tgACZK+5zFH+Kz8aDH52yDAZggPC/pk9j2Pw/b7D1ncVcM wAThDV68xKntf4p0dzxsDMAE2S8A+z1CdxcMwAQxAMUxAMUxAMUxAMUxAMUxAMUxAMW5KjIM3PY/RXIg 6BjD8C6/7IPkkfm8Rue72PY/RXo08o7/3n5DL488CvYgDMDIMKvHxA5j+/yqObSvkm0o/vB1rn/F7+M6 34FfxKfjBXEVBmBkmNIdHs6PSmr2UFyFARgZ5vN7HXxUvhRXvVnFAIwMizmYzx/251H5eFyFARgZVvKw mIP5fDp6XTnnD2vAdUFv2568WPPtOHz93hADcASwkofFHNzGcS+/Srbhap8Lvrb/Kf4zkRr09ht6W7wk HoQBmCDc6vXGAcbofwMwQbiP51au7X+KxC/7sDEAE8QAFMcAFMcAFMcAFMcAFMcAFMcAFMcAFIfFHMzn t/3P2D7Du4eNAZggrORh3J8+/6//mdhZZ2x/UwzARGElD4s5mM9nSvegWb1tMQATZ9VijsPAABTHABTH ABTHABTHABRnowCciDIvHojUdljvpQYWJZ6MrHMnNXr8pZbPx+FfIeFSA7IhadH52Cs+dhu1jvsmQ+cv tV+81TRoLan94rr4cjwdmZvW+UutqTm134M/aVr3gQR6/KXWYzyQWkREREREREREREREREREpsBi8Q9x 76lLAilzEQAAAABJRU5ErkJggg== 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 Methods that match HTTP Contain : when the url contain the targer value it will match success StartWith :when the url start with the targer value it will match success Is :when the url is the targer value it will match success Regex :when the url regex the targer value it will match success AllPass :all url will match success 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 q08OrPrJSeMAAAAASUVORK5CYII= 542, 21 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 AElFTkSuQmCC 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 AElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAABGdBTUEAALGPC/xhBQAACQdJREFUeF7t 3WmsbuMZxvFT80ypKZQIrdJQoaQEVUNFhEqkxJBoS2hRNVV9MLc+lEg0pKEpRZzICamhhFApkXBQmmgk NcRQKYqap5qvO3FEtvvEuZ31POtZz/3/J7/Pe71rvdfZ++z3fdeeRURERERERERERERERERERERERPRx a8oucoycJRfIFXKD3Iai7BzbubZzbuferoFdC7smNELLya5yuvxNXpIP0SS7NreKXavvyzJCBfqK/Eru Ee9CYDrmytFi15QWsr3lRvFONKbvGvmBUCD7Nmz/wjwh3klFfx6Vn8mSQvNpKbGfVV8R7ySif/+TE4Vm tKP8W7yThnwelu0kfavJleKdJOBSWVFS9j15VrwTA8xjP1lsIWlaVM6U98U7IcBM78hx0n327dJeffVO AvB5rhb7ZU6XrS3/Eu+BAwvqXllZuuqb8ox4DxiIstdN1pUu2kBeFO+BAl/UUzL5t6vYA+AVcZRiP24t LZPMDvw+8R4YMJS/yCIyua4S7wEBQ/utTKpjxXsgQCl7yCT6jrwn3oMASnlN7BdCTWf/KX9OvAcAlPaA NN1l4h04UMtJ0mTbi3fAQE1vy3rSVEvI4+IdMFCb3cyjqX4h3oECY7E73zTRYvIf8Q4SGMtfpYn2F+8A W/GG3CF2c7Oz5Xg5QHaSHbBA7FzZdbZzZ+fQzqWd0zfFO+et2ExG75/iHdyY7M2RZ8imQmWzc2wfgGvx Bn6Xy6htK96BjcXeBn2IUP3svXeHyWPiXZuxrCKjdaF4B1Xb0/JDoTY6UJ4X71rVdqSMkn30sYV7WJ0j 3PO1vVaQi8S7ZjXZW+JHaT/xDqiWV2VPobaz/9zbi3feNaxlY6neHPEOpgZ7UbL5N6bRJ9lte8a8xdMo d2t8QbyDKc2+ZX5ZaFqtJXbHRO+alnaTVM1uwuAdSGkPyUpC02wdGeNF5bfEXtCu1hHiHUhJ9nt2+1eI pt0m4l3f0uxzStWaLd5BlMTfkeinMd67Z38arlr3i3cQpdivC6mvbhfvWpdir9lV6//iHUQJ9suAtHf4 7rgN5V3xrnkJNsgq2R3tvAMo5WChPrM3PnrXvAT7NXOVdhbvAEqw33hQv9mfivaueynLS/Hs1Wvvi5fw S6G+u1i8a1/C+lI8e1Og98WHZn8/ZFWhvrM/teZd/xK2kuLV+oDUdUI5qnU/gyofw/2xeF98aIcL5ajW xybsk6TFsw8keV98aKO8A5NGqdZPJT+V4tUYyMtCebL7WHnPg6F1M5C5QrmqcT/nbgZyiVCuHhTvuTCk bgZyvlCubhbvuTCkbgZynlCuatz4nO8gNNnOFe+5MKRuBvJ7oVwxkAAGki8GEsBA8sVAAhhIvhhIAAPJ FwMJYCD5YiABDCRfDCSAgeSLgQQwkHwxkAAGki8GEsBA8sVAAhhIvhhIAAPJFwMJYCD5YiABDCRfDCSA geSLgQQwkHwxkAAGki8GEsBA8sVAAhhIvhhIAAPJFwMJYCD5YiABDCRfDCSAgeSLgQQwkHwxkAAGki8G EsBA8sVAAhhIvhhIAAPJFwMJYCD5YiABDCRfDCSAgeSLgQQwkHwxkAAGki8GEsBA8sVAAhhIvhhIAAPJ FwMJYCD5YiABDCRfDCSAgeSLgQQwkHwxkAAGki8GEsBA8sVAAhhIvhhIAAPJFwMJYCD5YiABDCRfDCSA geSLgQQwkHwxkAAGki8GEsBA8sVAAhhIvhhIAAPJFwMJYCD5YiABDCRfDCSAgeSLgQQwkHwxkAAGki8G EsBA8sVAAhhIvhhIAAPJFwMJYCD5YiABDCRfDCSAgeSLgQQwkHwxkAAGki8GEsBA8sVAAhhIvhhIAAPJ FwMJYCD5YiABDCRfDCSAgeSLgQQwkHwxkAAGki8GEnCBUK7OE++5MKRuBjJbKFeXifdcGFI3A7lOKFfX iPdcGFI3A3lAKFd2zb3nwpC6GcjbQrmya+49F4bUzUDM14Ry9A3xngNDqzKQn4j3xYd2sFCO7InrPQeG dqgUbx/xvvjQ7LcalKM54j0HhrafFG938b740F6TxYX6bll5XbznwND2kOJtL94XL8G+W1Hf/Ui8a1/C d6V4m4v3xUu4Xajv7hPv2pdgz93irSHeFy9lS6E+20W8a17K6lKll8U7gBJuFeqze8W75iW8JNW6W7yD KKXKbx+oaoeLd61LuVOqdYl4B1HKf2VVoT5aV14V71qXcpFU6zjxDqKkG4T66C7xrnFJP5dqfVu8gyjt RKFp9zvxrm1pm0i1FhF7Ic87kNJ4C8p0O1m8a1pa1f+gz+t68Q6mtPflWKHp9CU5S7zrWcNVUr2jxTuY Wv4o1H7Ly7XiXcNaqryLd2aryXviHVAt98taQm22kTwm3rWr5R1ZSUbpJvEOqib7+dL+hbBv49RGS8qp 8pZ416ymP8to2Qt43kGN4R/CC4rjd5iM/V3j06q8g3d+LSUvindgY7GLc7psKlSn7eQcsRd0vWsylmdl 9E4R7+Ba8LCcLTuKfYR3aaGFy36e31jsc0F/kufFO/ctOEZGz05YrQ+8DMHe4mDDuUNuwwKxc/WovCne OW3Rc9LMP4hnineQwFhOkGZaWcZ6ZR2Y6WlZRprK3gzmHSxQ24HSXIvKg+IdMFDLPdJsNW/oAMz0gTT/ 6/3zxTt4oLTTpPnsXlZ/F+8BAKXcIpN5u5G9gfAF8R4IMLQnZUWZVDuI92CAIb0h35JJtr94DwoYgn3c YmeZdPbGQe/BAQvrIOkiu+WK9wCBL8reJNtVvxbvgQIRdk8C+xs1XWYPzB6g98CBz2OfUNxNum5XsY/J eicAmJ+nxO7HlqI1ZYy762GarpbJvc4xRL8R74QA8xwpqdtM7IYL3slBXvZnL74qpOxWpkdJ7Tt+oz32 Yad9hZxWEXtHZss3AkAZj4t96K65TwK2mH3Y3u6v9Ih4JxP9mCv8sdaFaBv5g7wi3gnG9NiPUXYz668L DZR9V9lL7AZlfN5kWuwFPrt90Bmyk1CF7GdVeyen/SkEe6+XfRbZ3vrsXSDUY58DsjHYH8qxeyZvLURE RERERERERERERERERERERERE9NlmzfoIno/jKmJ8BD0AAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAABilJREFUeF7t mVloHVUYx5O478VIwOJSN7CIa6CKvsSFYKTJTe4lKhQsCIKFIOKLG8XlpQVxgUIfKtIihWAl0OKLxVAV CiFYCvVFMKWJVqoNaaOxDdq6/b7jN+HMWe6NIDmTy/zhz9z5zv9M/t/MOWe+M2kpUaJEiRIllg+q1er1 AwMDe/r7+3/i+Dc8w++9HB9VSfNCk/9BEw/xHWSt/6qbDLVa7UYSrJd8xpHOzs7ztFvzgMR2OYnW477u 7u5LtGtzYHBw8CJJzEk0StaFgxzbtfvyAwlfSRLbSaJDQy0ytDkfyZJsRPpPVCqVa7X78gGL3TWYP6xJ TDpJtBLfZifagMd6e3tv1b7FB2Zvw/SPbhJ9fX03q8SAG/Omo4kS7Szs1K7FBkY/jCQxw0i4XWUGxIbg XyF9gMd6enou167FRVdX17mYDc5zkp1jJDygUgPiTxI/62pDRPe2disWMNbjvLtbie2IJPEb7FadgZxL PKR3OI28WIUSxofEHMdRedVp2IDYFicBQ+LyxKsqM5CRQXzO1bos1DTA0CbH4JhrkKRedjSGxGXur1eZ gawRxI7bOpv0mUFWiBEQHOLE5Ml6mxpiz2jCOb2Q+JDKDDhfRfyoqxPS9p7K0iFWzGDOm9s20NRb7Dar zIA64mpi3ziaL90ptuSIlbMkdiqwuncwpO/XUwO5QXKj3P5C4juQLAxvzlfAcW0fTr5BcgzZxmdI/m6V GUjlR3wSSrJrNWygi90p9zrKEXmNqtTccLS5KZIEkSEp9Co8KVslbmn+hLnFTm4Yic1amgUS38tCeoFK 0wNDwUWJuFvjN0pso8oM9EbFVvz9hdgOx15LJPM1x4VdnoDkHyQeG9rS53WVLoDYKjgZ0J5m1N2jsjTA xBroFSbExkn2MpUZEF8Lz9g6m/SJzmPaO6A9vabR36XNaYCBbozMW6Yy7nNfRcTWQ5nnrlYS94odASPr Efs66GSBlQ8gU/LdUMNpgIkqZkLva+9bHTpTBoeo18iVuwJi66DcsDF7nnNDLmVduEpP0wBTwYqNWO4d LSDulsG2PlgUEXvevj6/DxSmtsfMRjsJy+QWlWSI7vSEtHlFkYD4axH9dpUkQ71PVC+pxqDRNz2SmZVX ocozyA3bGtF/xdC/QnVLD/14MRww5i1esmgRq/dVN/Ttro34TkeXcTd//0LVLT2k2iJR+ZdUzhgxb/Ei FiyDM9LmFUU6Wna7WuUwN/QclS495D2Oif2OKeE8yeQWrzplcEZpyxVFMlq4zqijMyQucz7dnh4T7ZiQ Ss41NgfXqMyA8+jeXEj7QbhC5QayqtM25mqV25CkS153aRMBY8el7FWZQawMtujV68Ta4SFLY/MNlaVB YJeW8ag8aZUZcB4sgzPS5u3YmFYrafs2oJU1xasGlxQYuBMj3i6N2ITMcZUZEIuVwRlze3ZBrVa7hX7f B7TempIEGPEWMYx5/3zkPFYGZ/TmME/+DvrMBLQ/E8+tKUmAkdWOMWFo/kY/XCo3qXQBjJ776PNLQPsr a8i9KksLjLxim8PwSbcAIf6qrXFJH287S+xh2kJTpTjJCzB6wDG4U5sEUqYG/3khpC24nSVWgaH9/wn6 pN3L29AiJmcSgzVtlkRecNszomu0nXX7TNHnJpUVA5h6zjE5z+vwYm02kD048QrmP8t0/I5tZzfA0Drh VYOFAGY/t41y/pE2eaBN5rRoYtvZ2HZ5HOaqwUIAc1Ly5p4Wi9MT2uyBNqkSQ9tZSf5d+zoZiX+SdEdX Dxh82jH8R6MnJe90/ZmhjT4fONcxJL6V9nR1fSPI03EMj2rTotBgO/uWyooJ/Xjxu22aG7DofzHJQik3 zO6fkanyosqKC8w/HjD/kDaH0CZVHZpn6fup0y+jFD0V1RcbGA195jrCk71OJa38voH4IJRPVicyXYj0 PQvTb2oWA4b/+ZgO7uZI4iTHjzmG6vcYpwpV2jYCZh8LJPGfqDdoD1xX2NdcDJh+P0tksdSEv+C4geNq LlPc11s9yNMiieh/aG2i+47jZo7p9+z/F+TdTUKn3WSV03AXxY5gpXZpPpDkU1C2qrJjM8NaPllpc4kS JUqUKNE0aGn5ByjCDktfUtHbAAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAAgwAAAIMCAYAAACZhvQPAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH4AoSFw0uGiHw4AAAOQlJREFU eF7tnWm4HVWZts0cCDHMgTAJIqMIODaCIIgIEgVERJBRG3ACBbS16fCBioogQmtrgyiKijhgt4CANCCD 0gwaRIFGbTQyyRjmMGX4vmeZNx/FS51z9j57V+16V933dd1/Wi97P289a52Vc2pXvQgAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA33nD+GWPlFDlDbiK3l/vIj8mT5HflhfI6eau8U86V j8un5QK5UC6S/3cI03+W/jvz5VPyUXm/nCNvkr+UP5XfkMfJD8t3yq3kenJFOUnapwYAAIC+oR+w4+V0 +Vq5r/y8PE/eIh+Rw/2Qb6rp0HGvvF5+T/6z3FVuJKfJMRYfAAAAlqAfkBPkS+RM+Wl5sbxbpn/Rl/3A bYPpNx/ptyFny4/I9JuKlSSHCQAAyBv9sBsn15bvlqfK9FuC9K/tsh+YOLSPyatkOlylP7+kP3fYlAEA AAKhH2AT5abyCHmJTPcLlP3ww/55l0z3a+wt15D8NgIAAJqDfjAl058U3icvkE/Ish9oWL/pBs/T5Fvl snbJAAAAqkc/eNKNiJvL9G2AP8qyH1TYTJ+Vl8uDZfothF1VAACAHtEPlfS1xXRAOEHeLst+EGFM07dM rpEfkKvZJQcAAOgM/fBI//o8Uv6PLPtBg3manklxkdxNTrE6AAAALEY/HNJXG9Md9z+RfHMBl3ifPF5u YFUBAIC2oR8Cy8pDZHpSYdkPC8Si6bkY6WmWb5LjrEYAAJAj2ujTUxOPkvfIsh8KiJ2a7n3YXU60egEA QGS0oadDwtEyvT+hbONH7NXZMr07g8MDAEAktHGndxIcLtM7C8o2eMSqvFruKMdaHQEAoElog07PR3iX 5JsN2BTPkZtZRQEAYJCkDVmeaxs0YhN9UqZ3X6xgtQUAgDrQxjtVptci844GjObv5c7S2gwAAH1Hm+zr 5JWybCNGjGT6muYpcmWrNwAA9II21PTmx8Nkeq1x2caLGN30LYttrPIAANAN2kBXl+l1xWUbLGKOpjed psPxBFsGAAAwFNost5A3yLINFbEtni5XsmUBAAAJbYzJ9JXI+2XZ5onYVn8hN7SlAgDQTrQRjpPpV7DP yLLNEhEXe6vc0pYOAEA70MaXbmQ8Vi6SZZsjIpb7N7mTLSUAgDzRRjdZnmAbHyKO3vRulF1taQEA5IE2 tknyi7bRIWL/fFjuZksNACAm2sjS+x2Os40NEavzQflWW3oAADHQxjVGfsw2MkSszzvlVrYUAQCaizar /eSztnkh4mC8SfJ1TABoHtqctpPpRqyyzQsRB+PFkgdAAcDg0Wa0rkxv4CvbrBCxGX5V8shpAKgfbT5T 5A9sM0LE5puee3KILWEAgGrRhpM80jYgRIznffJ1tqQBAPqPNpmtZPred9kmhIixTPc3LGvLGwCgd9Km Ii+1TQYR8/ITttQBAEaPNpMj3OaCiPn5gHy1LXsAgM7R5rGxTC+6KdtcEDFP043ME20bAAAYGm0WY+Vp tnkgYvtcKN9hWwIAwAvRJrGNfMo2DURst7+U02x7AAD4+0FhgvyhbRKIiEUPsK0CANqMNoNtJe9+QMTh vF7yFUyANqLFP06eZZsBImInvse2EABoA1r0r5LzCpsAImKnpmeyLGXbCQDkihb6iYWFj4g4GtM3Kbaz bQUAckKLe4a83RY7ImI/PF3aLgMA4dGC3rewwLHdphtcH5P3y3SAvFXeKK+Tv5JXysvlFfIqebX8tUyv MP+TvEvOlelPWgtk2f8PbJf3yrVsuwGAiGgRpxsbz7VFjXn6iLxJ/kR+QR4sd5CvkKvJqTJ9bXaM1aLv 6H87PexrkkzvHFlbvlbuKg+XX5WXyL/IJ2VZBszD91olACASWrzry0cLixlj+rS8WX5LfkimN4auKkM+ vlefOzlFvlTuLGfJ8+SdcpEsmwHGMV3LcXa5AaDpaMEeVFjAGMNn5G9kuik1/SBdXbZu41XmpeRGcn/5 HTlHls0Lm2v6rdc6dkkBoIlokY6R/2mLFptr+q1BukfgSLmpnGyXEErQfJLLyzfJL8l030XZXLFZ7muX EACahBZn+hbEfYXFis0x3Vx4itxaTrFLBj2gOSZXkXvK/5CPy7LZ42BNvyWyqwYAA0cLcsfCAsXB+7/y U3ITOdYuE1SMZp3ujXiLPFNy/05z/LPksdIAg0YL8bjCwsTB+LD8mnyN5IavhqBr8WL5DvlzmR40VHbt sB7T/F9rlwYA6kSLL32VLT2itWxxYvWm5xakG/N4/W8QdK3WlZ+R98iya4rV+wG7HABQB1p0K8n04J2y BYnVmL7yl/5Wvo3kzwzB0TVMv304UKZnWJRdb6zOb9tlAIAq0WJLD8Xh++r1mH6N+n35SmlXAHJD1zY9 dGoPOVuW9QD772/lJLsEANBvtMD2Kyw4rM70dMx0MLPJQ1vQNU+Hh33kH2RZN7B/pkeUz7DRA0C/0MI6 obDQsP/eIGdK/twAf0ddmCY/IdNNrWWdwf64hY0cAHpBiymZHrdattCwN9O/cNIPhKk2boBS1JEN5Nmy rEfYu++xUQPAaNAimijTewTKFhiO3ovl5jZmgI5Rb9IL3d4j75Bl3cLRe4yNGQC6QYsnPQr3wcJiwt58 Sv6zXNpGDNAT6lL6muY5sqxvODr5BgVAN2jRrCPnFxYRjt5089oONlqAvqN+TZbpT1vpHSFlHcTu/IWs 7HXsANmghZKeFli2iLA7L5Dr2lgBKkd9S75dpld1l3USO/cWOcFGCwAeLZD0HPyyxYOd++9yORspwEBQ B18l0+vKyzqKnZmeyLmMjRQAlqCFsVdhoWD3pkf+8iAYaBTq5Eslj3AfvektpCvZOAFAC+L9hQWCnZue eJluZOSFT9Bo1NHV5M9kWY9xeJ+Va9goAdqLFsLHCwsDO5eDAoRDnV1VpvtryjqNQ5v+cfAyGyNA+9AC +D+FBYGd+Wk53kYIEBJ1eE15hXUaO3djGyFAe1DxP+sWAg5vuplxKRsfQBao0xvJ31vHsTM3tfEB5I8K f7xbADi0F8oVbXQAWaKOv1HyyvrOfaWNDiBfVHQOC535J8mvH6FVqPPvlem16mVrAp8vj3eHfFHB+TPE yD4jd7WRAbQO9X+8/FdbDzi8/HkC8kPF5gbHkf2c5JGwAEJrIX2j4jpbGzi0G9rIAOKjQvPVyeG9Vk63 cQFAAa2NHWV6eVrZ2sHFvtTGBRAXFZmHMg1teiDLTBsVAAyB1slYeYqtG3yh6b6PGTYugHiowDzueWi/ KXnwEkAXaM2kN9n+xdYQPt/0ttDlbVQAcVBxeZFUuQ9KblQC6AGtoUMLawqf8xHJ81ogDiosr6gu9wRp UwKAXtBaWkn+1tYWPucdkt9eQvNRUdOvDMtK3GYfkNzJDFABWluHFNYaLvYGaRMCaCAq6PJyvhUWF5tu 1LIJAUAVaI2tLG+1NYeLvcDGA9AsVM6JMv19vqy4bfRJ+RobDwDUgNbcUYU1iOef8VUbDUAzUCmTNxdK 2nbPk7xREmAAaO1tIB+2tYjnn3GkjQZg8KiQ6QdkWVHb6F42FgAYEFqHY+TZhXXZdt9uowEYHCpiuvO/ rKBt8065qo0FABqA1uQehTXadl9hYwGoHxVwP1fItvotaVMBgCahtZneSXG3rdU2m54GyYOdoH5UvNcW ithm32kjAYCGonWa/F5h3bbVe+VYGwtA9ahw6YEpi6yAbfUhuZaNBAACoDV7QGENt9UrbBwA1aKypZfA 3F8oXxu9TPIkNYCAaO1uKNN7F8rWdlv8ko0DoDpUtEtd8drmsTYKAAiK1vFS8sbCum6j77JxAPQfFew4 V7i2yauoATJCazq9NbZsrbfF9W0UAP1DxdrRFa1NPiXXsVEAQEZobX+gsNbbZnoi7SQbBUDvqFDpa0ll ZWuDf5JL2ygAIEO0xrcprPm2+RsbA0BvqEzpiWn3FcrVJi+UNgkAyBmt9bVk+m1i2V6QuyfYGABGj4r0 n65YbfFkGwEAtASt+ynyr4V9oE3uaGMA6B4V6CBXqLZ4mI0AAFqG1n/66vjVhf2gTa5oYwDoHBVnPVek tribjQAAWoz2gh+4vaENzpE2AYAOUGHGyUetQG1ySxsBAEDaC092e0Qb/JrFBxgZFeZcV6A2uJHFBwD4 /2hvOMrtFW2Q+xlgZFSUfV1xcne+XNPiAwC8AO0R7y/sGW1xmsUHeCEqyAxXmNxNX6GabvEBAIZEe8U+ hb2jDf7OogO8EBXkdleYnH1cLmfRAQBGRHvGOwp7SBs8yqIDPIeKcaIrSs6mGzr5dRsAdI32jl0Ke0kb 3NCiA/x9AbzKFSRn02FhqkUHAOga7SEzC3tK7j4sx1h0aDMqQvoK5TwrRu6mP0PwmwUA6BntJbsW9pbc Pd1iQ5tREc5yxcjVdIMj9ywAQN/QnrJHYY/JXZ5T02ZUgG1dIXI1fXVyZYsNANA3tLfsX9hrcvZpOd5i Q5vQhZ8gn7Ui5OwiyXMWAKAytMccWthzcvZsiwxtQhf+h64IucoTHAGgcrTXHOP2nlzd2iJDG9AF38YV IFf5mxsA1Ib2nH93e1COpvvBxllkyBld6PTq1iftwucsb50EgNrR3vNTtxfl6DcsLuSMLvSp7sLn6GEW FwCgVrT/JG8o7Ee5uplFhhzRBd7IXfAc/ZLFBQAYCNqHxst7CvtSjj4gLTFkhy7u3woXO0cvsKgAAANF +9GyMn2lu2yvysWjLS7khC7sEe5C5+YfpaUFABg82pPWL+xRucobf3NCFzSddMsudC6mu3aXtrgAAI1B e9POhb0qR6+3qJADuqCXugucm+tYVACAxqE96pNuz8rNmRYVIqMLuZW7sLm5s0UFAGgs2qv+w+1dOZke Gz3WokJEdAGT6dWkZRc4B4+xqAAAjUb7VXJOYf/KzRMtKkREF/BId0Fz8lKLCQAQAu1b6X6y9H6bsj0t B7kBMiK6cFPchczJhySPJgWAcGjvel1hL8vNX1pMiIQu3A/chcxJ3j4JAGHRHvYxt6fl5OstJkRAF2xd dwFzcneLCQAQFu1lF7u9LRfvs4gQAV2w37sLmIvftIgAAKHRfpYeH/14YX/LyQMtJjQZXaht3YXLxTuk pQQAiI/2tFyfBLlAcp9Z09FFmlu4aDm5ikUEAMgG7W2Hur0uFz9rEaGJ6ALt6y5YLu5pEQEAskN73OVu z8vFKRYRmoQuzBj5bOFC5eJPLSIAQJZon5ssc3yz5bctIjQJXZgcv6YzT463iAAA2aK97g2FvS8nV7aI 0AR0QdLdtjk+PezVFhEAIHu0553q9sAcPN/iQRPQBTnOXaAc/JLFAwBoBdr30p+WHyzsg7nIw/aagC7E JHdhcvA+aQkBANqD9r6NCnthLl5m8WCQ6EKc6C5MDq5v8QAAWof2wOPdnpiDL7V4MAh0AXL87cLnLR4A QCvRPpi8v7Av5uAVFg8GgS7ACe6CRPcBaekAANqL9sIc/zSxtsWDOtHgJ7oLkYObWDyArlB3Zsij5CXy Npm+kpu+1z4I09NWfyd/IneTk+xjAnSFuvNlWbZXRvVSiwZ1osEf6y5EdL9u0QA6Qp1JfkQ+YR1qsn+Q r7SPDtAR6kz61kQ6/JZ1KqqrWTyoAw18nMzpuQvPSF5UAh2jvuwun7T+RPJqubrFABgR9WXrQn9ykKf3 1okGfpi7ANF9q0UDGBH15euuPxHdzuIAjIj6cpHrT3SXs2hQJRp0Mv2LvOwiRPRqiwYwLOpK+vXsbwrd ie6RFg1gWNSVZVx3onu6RYMq0aD3cIOPLs8Zh45QVy5w3clBfrsGHaGupPt1yjoUVW4GrhoNOafv5n7G YgEMi7ryKdednFzHYgIMi7qSnoJb1qGIzrJYUAUa8BZu4JF9Wo6xaABDop6sXuhNjt5mUQGGRV15netO ZBdISwZ9R8O9oTDs6L7NYgEMi7pypetOju5ocQGGRV251HUnsntaLOgnGmxO/8r6g8UCGBZ1ZQPXnVx9 xCIDDIu6sqLrTmTvs1jQTzTY77pBR3YDiwUwLOrKKa47OcsDbaAj1JWTXXciu7nFgn6ggeb0GOjzLRbA iKgvj7n+5Cw3gUFHqCvjZS4P77vSYkE/0EAPdQOO7AoWC2BY1JVlXXdy93aLDjAi6suHXH8iu6zFgl7R MHP5V9a/WSSAEVFf1nP9yd2nLTrAiKgvyQjvUenE4y0W9IIGmdPXaCZbLIARUV+2d/1pg5YeYGTUl/RO lbIeRZOvWPYDDTGXr5QdY5EAOkKdOch1qA1OtPgAHaHO3Os6FNWdLBKMBg0wl+eHp5tzeBsldIU6w4EB YATUmTe7DkX1ZosEo0ED/KQbaFQ/bpEAOka94cAA0AHqzR2uR1FdySJBt2h4j7thRnShHGuRADpGveHA ANAB6s02rkdRPcEiQTdocJu5QUaV3y7AqFB3ODAAdIi6c6frUkTnWxzoBg3uXDfIiHLvAowadYcDA0CH qDtvcl2K6ustEnSCBpae4lU2yGjyzQgYNeoPBwaALlB/7nd9iuhlFgc6QQN7lxtgVNn8YNSoPxwYALpA /dnF9SmqrINO0bBuccOL6FcsDsCoUIc4MAB0iTo0z3UqovtZHBgODWqaG1xUp1kkgFGhDnFgAOgSdehg 16mI3mZxYDg0qMPd4CJ6rsUBGDXqEQcGgC5Rh8bKHN5kuZxFgqHQkHJ4zOfaFgdg1KhHHBgARoF69AXX q4jylfzh0ICmu4FF9BaLA9AT6hIHBoBRoB5Ndb2K6H0WB8rQgI52A4vodhYHoCfUJQ4MAKNEXbrQdSui 0y0OeDScuW5Y0ZxnUQB6Rn3iwAAwStSlDVy3IjrL4kARDSaHP0fwNyfoG+oTBwaAHlCf7nL9iub9FgWK aDBHuUFFdCmLA9Az6hMHBoAeUJ/2cv2KKG+w9Ggo97ghRfNnFgWgL6hTHBgAekB9Sl+xLOtZJI+wOJDQ QJZ1A4roKywOQF9QpzgwAPSIOnWG61g0/2pRIKGBRH8y18MWBaBvqFccGAB6RJ1a03UsolMsDmgYN7nh RPNIiwLQN9QrDgwAfUC9in7z414Wpd1oEBPcYCK6jMUB6BvqFQcGgD6gXr3X9Sya11iUdqNBbO8GE83r LQpAX1G3ODAA9IHUK9eziI6xOO1FQ/iJG0o0d7QoAH1F3eLAANAn1K3LXdei+RqL0l40hPluKNHk1AeV oG5xYADoE+rW1q5r0fy6RWknGsAabiDRPMeiAPQd9YsDA0CfULeSkV97/ZhFaScawJFuINF8lUUB6Dvq FwcGgD6ifn3f9S2ay1qU9qHw/+OGEckFFgOgEtQxDgwAfUT92sz1LZrvsSjtQsGjP7LzTIsCUAnqGAcG gD6jji1wnYvkZRajXSj45m4Q0eRR0FAp6hgHBoA+o46d6ToXyYUWo10o+BfcICK5UFoSgGpQxzgwAPQZ deyVrnPRXN2itAeFvt0NIZI/tBgAlaGecWAA6DPqWDLytyU+YFHagQKPdwOI5pYWBaAy1DMODAAVoJ6d 53oXyXY9JlqBo9+/MNaiAFSGesaBAaAC1LM3ud5FcpHFaAcKfJwbQCSvthgAlaKucWAAqAD1LPpvuVe1 KPmjsH904SO5t8UAqBR1jQMDQEWoaze57kVyP4uRNwqaLBtAFKdaFIBKUdc4MABUhLr2Ade9SP7MYuSN gr7EBY/kgxYDoHLUNw4MABWhrq3suhfJeRYjbxT0fS54JP/VYgBUjvrGgQGgQtS3p1z/IrmUxcgXhbzA hY7k5hYDoHLUNw4MABWivp3t+hfJ11uMfFHIJ1zoSPJ1SqgN9Y0DA0CFqG9vcf2L5OcsRp4o4EQXOJK3 WgyAWlDnODAAVIj6tpTrXyR/ZzHyRAE3dYEjOctiANSCOseBAaBi1Lm5roNRzPtFVAp4hAscyY0sBkAt qHMcGAAqRp37putgJKdZjPxQuEtc2EiOsRgAtaDOcWAAqBh1LvJjorexGPmhcI+7sFH8s0UAqA31jgMD QMWoc1NcByN5nMXICwUb54JG8gSLAVAb6h0HBoAaUO/muR5G8TqLkBcKtrYLGsn8v+8KjUO948AAUAPq 3fmuh1F82iLkhYK92wWNZP5P1ILGod5xYACoAfXuQNfDSE6wGPmgUKe6kFFsxzO7oXGoexwYAGpAvVvT 9TCS61qMfFCoW1zIKF5iEQBqRd3jwABQA+rdGNfDSL7bYuSDQs13IaN4mEUAqBV1jwMDQE2oe3e5Lkbx axYhDxRoggsYyY0tBkCtqHscGABqQt0703UxijdahDxQoJe4gJFkA4OBoO5xYACoCXVvL9fFKD5lEfJA gWa6gFHM60JAKNQ/DgwANaHuRf6HbT5vUlaYT7lwUbzGIgDUjvrHgQGgJtS9yA8XnG4x4qMwF7twUcz7 fePQaNQ/DgwANaL+RX19wRssQnwU5m4XLoo7WASA2lH/ODAA1Ij6d5XrYxQ/ZBHiozALXbgormoRAGpH /ePAAFAj6t9nXR+j+C2LEBsFGe+CRTKfG0kCo+swVa4jt5EHtMg2HhjK5pCzW8v0np2pVncYILoOO8my Xjbd31qE2CjIdBcsik9aBBgAmv+68gT5kF0PxNx9QB4n17ZlADWj2a9h1yKaj1qE2CjIa12wKOZxYguG 5r6qvLRwHRDb6M/kirYsoCY087APGbQIsVGQfX2wIJ5mEaAmNPOj3TVAbLtH2PKAmtDMQ77GwD5+bBTk 8z5YEA+yCFAxmnV68ct5hdkj4nOeLW21QNVo1nMKsw+jffzYKEjUHwT/YBGgYjTr693sEfH5Xm7LBSpG sw75M8s+fmwUJOprrVe2CFAhmvOpbu6IWO4XbdlAhWjOx7i5h9A+fmwU5BEfLIjjLQJUhGa8u5s5Ig7v jrZ8oCI045D7kn382CjIIh8sgIvs40NFaMbJJwszR8SRfcSWEFSEZryJm3kI7ePHRSHG+lBBfNAiQEVo xh91M0fEzvxHW0ZQAZrv8m7eIbSPHxeFmOJDBfEGiwAVoRnPczNHxM582JYRVIDmG/LpxPbx46IQM3yo IP7AIkAFaL6ru3kjYndyU3aFaL7h/pRuHz0uChHyb0HyMxYBKkDz5QFNiL15pC0nqADNN9xrru2jx0Uh tvehgniARYAK0Hwvd/NGxO680JYTVIDme5ubd+O1jx4XhdjHhwrithYBKkDz/aubNyJ25x9tOUEFaL6/ cPNuvPbR46IQH/OhgriRRYAK0HyfcvNGxO583JYTVIDme6abd+O1jx4XhTjJhwridIsAFaD5LnTzRsTu nG/LCSpA8/20m3fjtY8eF4X4rg8VxKUtAlSA5suBAbE3OTBUiOZ7iJt347WPHheFuNCHCuI4iwAVoPly YEDsTQ4MFaL57urm3Xjto8dFIa7zoYJoCaAKNF8ODIi9yYGhQjTfLd28G6999LgoxK0+VAB5j0TFaMYc GBB7kwNDhWi+G7t5N1776HFRiDt9qAA+bR8fKkIz5sCA2JscGCpE813Tzbvx2kePi0LM9aECyHPaK0Yz 5sCA2JscGCpE813Rzbvx2kePi0KEe7ym/Jt9fKgIzZgDA2JvcmCoEM13qpt347WPHheFeNqHCuBt9vGh IjRjDgyIvcmBoUI038lu3o3XPnpcFGKBDxXA39vHh4rQjDkwIPYmB4YK0XwnuHk3XvvocVGIiD8Yfm0f HypCM+bAgNibHBgqRPMd5+bdeO2jx0Uhwr1TXP7KPj5UhGbMgQGxNzkwVIjmO8bNu/HaR49LWagA/sI+ PlSEZsyBAbE3OTBUiObLgaFuykIF8FL7+FARmjEHBsTe5MBQIZpvuJ9f9tHjUhYqgBfbx4eK0Iw5MCD2 JgeGCtF8OTDUTVmoAP6XfXyoCM2YAwNib3JgqBDNlwND3ZSFCuBl9vGhIjRjDgyIvcmBoUI0X+5hqJuy UAG83D4+VIRmzIEBsTc5MFSI5suBoW4UIuLXKv/bPj5UhGbMgQGxNzkwVIjmO9bNu/HaR4+LQkT8wTDb Pj5UhGbMgQGxNzkwVIjmy4Ob6kYh5vtQAbzFPj5UhGbMgQGxNzkwVIjmO9HNu/HaR4+LQjzlQwXwr/bx oSI0Yw4MiL3JgaFCNN+l3bwbr330uCjEoz5UAO+zjw8VoRlzYEDsTQ4MFaL5TnPzbrz20eOiEPf7UAF8 zD4+VIRmzIEBsTc5MFSI5jvdzbvx2kePi0LM8aEC+Kx9fKgIzZgDA2JvcmCoEM13HTfvxmsfPS4KcZMP FUH7+FARmjEHBsTe5MBQIZrvZm7ejdc+elwU4pc+VBDHWASoAM2XAwNib3JgqBDNdzs378ZrHz0uCvFT HyqIEywCVIDmy4EBsTc5MFSI5runm3fjtY8eF4X4hg8VxBdbBKgAzZcDA2JvcmCoEM33I27ejdc+elwU 4rM+VBDXsAhQAZovBwbE3uTAUCGa70lu3o3XPnpcFOLDPlQQN7cIUAGab8TncyA2ybm2nKACNN8fuXk3 XvvocVGId/pQQdzZIkAFaL7/4+aNiN15oy0nqADN91o378ZrHz0uCrGVDxXED1sEqADN93w3b0TsznNs OUEFaL53uXk3XvvocVGI9XyoIJ5sEaACNN93u3kjYnfuZssJKkDzfdrNu/HaR4+LQqzkQwXxAosAFaD5 hnuxC2LDnGzLCfqMZpssm3mjtY8fF4WY5EMF8Y8WASpCM/6LmzkiduYfbBlBBWi+IX9u2cePi0KEPKnJ JywCVIRmvIWbOSJ25qttGUEFaL6runmH0D5+bBRkvg8WREsAVaEZz3YzR8ThvcaWD1SEZvwPbuYhtI8f GwW51wcL4lIWASpCMw73RjjEAbumLR+oCM34QDfzENrHj42CXO+DBXEtiwAVojm/1c0dEcvd3pYNVIjm fIqbewjt48dGQb7ngwVxB4sAFaNZ/4ubPSI+34/bcoGK0ayvcrMPoX382CjIP/tgQfwniwA1oHnv5uaP iIt9my0TqAHN+wE3/xDax4+NguzqgwWRJ6nVjGa+vry9cA0Q2+wc+VJbHlAT7hqE0T5+bBRkYx8siHMs AtSMZv92+XjhWiC2yfRyNt5nMwA096gPlVtoEWKjINNcsCgusAgwIHQN1pKfknfLZ2XZdUKMbup26vgx klfrDxDNf0NZdo2a7r0WITYKMsYFi+QkiwENQNcjdWlyizxAlvUyZ8vmkLPWbmgCuh77yLJeNt2rLEJ8 FCbcizzM9SwCQO2of608MFh8gNpR/05zfYxiPi9MVJg/uHBR3NsiANSO+seBAaBG1L9bXB+juI9FiI/C nO3CRfEbFgGgdtQ/DgwANaL+LXB9jOKmFiE+CvMRFy6Kf7IIALWj/nFgAKgJdW8p18VIvthixEdhtnLh orjIIgDUjvrHgQGgJtS9zVwXI2kpMkBhVnLhIjnNYgDUirrHgQGgJtS9j7ouRvEhi5AHChT5q5VbWwyA WlH3ODAA1IS6d7HrYhQvtwj5oFCPuZBRPN4iANSKuseBAaAm1L0nXBejeJxFyAeFCvkGMPl7iwBQK+oe BwaAGlDvJroeRjK/Nysr1KddyChy4yMMBHWPAwNADah3m7seRnIVi5EPCrW9CxnJlSwGQG2odxwYAGpA vZvlehjJMRYjHxRqRRcyku+wGAC1od5xYACoAfVututhFOdahLxQsGRZ4Aj+wGIA1IZ6x4EBoAbUu0Wu h1G8wCLkh8Ld5cJG8RGLAFAb6h0HBoCKUedWdR2M5KEWIz8U7rsubCSXshgAtaDOcWAAqBh1bn/XwUhu YjHyQ+He48JGcjuLAVAL6hwHBoCKUecucR2M5CSLkR8Kt6YLG8nTLQZALahzHBgAKkadm+86GMV5FiFP FDDyI6Lzel43NB51jgMDQIWob6u4/kXyUouRLwoZ9cbH5BSLAVA56hsHBoAKUd8Ocv2LZL43PC5BIb/u QkfybRYDoHLUNw4MABWivl3j+hfJ9S1GvijkW13oSJ5vMQAqR33jwABQEepa5D+RJ8dZlHxRyGVd6Egu sBgAlaO+cWAAqAh17eWue5H8m8XIH4WNeldq8iUWA6BS1DUODAAVoa6d5LoXydMsRv4o7BUufCSPthgA laKucWAAqAh1ba7rXiTze6X1UCjsIS58JO+0GACVoq5xYACoAPUs8p/Gk8tYlPxR2DVc+Gi252LBwFDP ODAAVIB6drDrXSSfsBjtQIGTUd8OltzHogBUhnrGgQGgAtSzm13vIvlji9EeFPpaN4RI3mAxACpDPePA ANBn1LFJrnPRbN/zgBT6g24I0ZxgUQAqQR3jwADQZ9Sx3V3nojnVorQHhV7NDSGau1gUgEpQxzgwAPQZ dSzy0x0fsxjtQ+EXuGFE8lqLAVAJ6hgHBoA+on5NcH2L5rcsSvtQ+J+7YURzokUB6DvqFwcGgD6ifkX/ c8QbLUr7UPh3uGFEc0+LAtB31C8ODAB9RP26wfUtmu29d07hl3HDiObNFgWg76hfHBgA+oS6tbTrWjRv syjtRUO43w0lmu27YxVqQd3iwADQJ9StyA9rSn7SorQXDeELbijRPMKiAPQVdYsDA0CfULfucl2L5poW pb1oCBu6oUTzQYsC0FfULQ4MAH1AvZrhehbNZy1Ku9EgkgsLg4nouhYHoG+oVxwYAPqAenWK61k0v29R QMM4zw0nmmdaFIC+oV5xYADoEXUqGfmZP8ktLQ5oGNu74UR0rMUB6AvqFAcGgB5Rp7Z1HYsoP1+WoGGM c8OJ6B4WB6AvqFMcGAB6RJ36tetYNK+0KLAEDSXy2yuTf7EoAH1BneLAANAD6tNyrl8R3dXiwBI0lHe6 IUV0bYsD0DPqEwcGgB5Qn6J/bT/JKwg8Gkr0d5QnuZMV+ob6xIEBYJSoS8no38CbbXHAo+H81g0ropwG oS+oSxwYAEaJurSb61ZEeV/RUGg473LDiujhFgegJ9QlDgwAo0RdusN1K6L8A3Qo0nDcsCL6pMUB6Al1 iQMDwChQjzZyvYro9RYHhkJD+m83tIjuZHEARo16xIEBYBSoR5e5XkV0F4sDQ6Eh7eSGFtE5Fgdg1KhH HBgAukQdWsF1KqrjLBIMhYY01g0tqptaJIBRoQ5xYADoEnXoG65TEf25xYGR0LD+ww0votdaHIBRoQ5x YADogtQf16eobmGRYCQ0rM3d8KK6lkUC6Br1hwMDQBeoP591fYpoelGWJYKO0MCeKgwwqhdZHICuUX84 MAB0iLoz3nUpql+xSNApGtpxbohRXcUiAXSFusOBAaBD1J1PuC5FdXWLBJ2ioa3ohhjV/7RIAF2h7nBg AOgA9SbdLL+o0KOo3mmRoFs0vJvdMKO6skUC6Bj1hgMDQAeoNx9zPYrq/hYJukXDm+mGGdWfWiSAjlFv ODAAjIA6M07m8NuF5HiLBd2i4Y2RuRRhNYsF0BHqDAcGgBFQZ2a5DkX1xxYJRouG+GU31KheYpEAOkKd yeFte93Kv7CgY9SXHN4/tMT1LBaMFg1xuhtqZCkEdIz6ksvzSDrWogN0hDpzku9QUP9mkaBXNMzfuuFG 9QaLBDAi6ktOh+VOfMyiA4yI+vJi15/I7m2xoFc0zG3dcCO7pcUCGBZ1JZf3qnTqLyw6wIioLz90/Yns WIsF/UADnecGHNV7LBLAiKgvObzuvVPfZrEBhkVdWct1J7JftljQLzTUj7ohR3ZfiwUwLOrKHq47OTvR YgMMi7ryG9edyK5gsaBfaKg53Q2bXi7Cu85hRFJP5ELrTc6eY5EBhkVd2cZ1J7JXWSzoNxruN92wI/tF iwUwLOrKwa47ObqsxQUYFnXlYdedyL7CYkG/0XBXdsOOLo+Mho5QVx5x3cnJky0mwLCoK4e77kSW90ZU jYZ8hRt6ZH9lsQCGRV1ZzXUnF39jEQGGRV1ZxnUnujMtGlSFhryRG3p0t7doAMOirrzRdSe6j0pudISO UFfOLXQnuvMsFlSNhv0HN/zIpq+LjrFoAMOiruRyaPiTnGKxAIZFXXlNoTs5eIhFg6rRsN/ghh/dEy0a wIioLzNk5Bu/fiQtDcDwpK7IudadHEzfeuIfiXWigd9TuAA5uJZFA+gIdeYgmb6iW9anJpp+q8Bd4dAV 6szRhQ7l4CyLBnWhoe/sLkJ0/2TRADpGvUmPj36n/JX1qGk+Lc+Qr7KPDNAx6k36bVpZryI7weJBnWjw OX0fN/l+iwbQNepPOjykrx5vKneR+w3I7eV6kmcrQE+oQzfJsr0yqp+3aFA3Gv7u7mLkII8JBYDWo70w xweWTbJ4MAh0AXJ7oM2vLRoAQCvRPri82xdzkJvbB40uQo6/ZXifxQMAaB3aA2e7PTEHJ1s8GCS6EDl9 5WaJ/GkCAFqH9r5D3F6Yg5+zeDBodDFmuouTgzdZPACAVqB9bxW3D+Yi34xoErogd7sLlIMft3gAANmj Pe9/3R6Yg0dZPGgKuihbu4uUiy+ziAAA2aK97jNu78vB9GC1sRYRmoQuzC2FC5WL6f4MHiMKANmiPW7z wp6XkwdbRGgaujgbu4uVi9+xiAAAWaH9bYJ8srDf5eJj0lJCI9EFurRwwXJyN4sIAJAN2tt+7va6XJxp EaGp6CJNdxctJ1e2mAAA4dGe9n63x+XibRYRmo4u1qnu4uXiHdJSAgDERXvZBoW9LTd5K2sUdLEmuouX k9+2mAAAIdE+lu5beKKwr+XkRRYToqCL9gF3EXNyH4sJABAO7WFXuT0tJ5e3mBAJXbgH3IXMyfUsJgBA GLR3Hev2spzkEdBR0cXbwl3MnExfQ+JVqQAQBu1ZOxT2sNx8RvLMnMjoAub6NcvkbIsJANBotF+t5vav 3Hy7RYWo6CIu5y5qbp5mUQEAGon2qXST48OFfSs3b7SoEB1dzH9xFzc3D7KoAACNQ3vUtW7Pys01LCpE Rxczmd7JUHahc3FLiwsA0Bi0N53u9qrcPNGiQi7oor7WXeQc5ZQLAI1Be9Jhbo/KzXTzOTc65ogu7I8L FzpH58mlLS4AwMDQXrRTYW/K1TdaXMgNXdxJclHhYufonyUnXgAYGNqDXl7Yk3L1QosLuaKLvIe76Dl6 pcUFAKgV7T+ryNz/YZbkt7ltQBf6v92Fz9GzLC4AQC1o35kiHy/sQ7m6t0WG3NHFzv3ZDEvk7l0AqAXt N+PkXYX9J1evs8jQFnTR3+dKkKv/ZJEBACpB+8wYeVNh38nZ5Sw2tAld+NmuCLn6jxYZAKDvaI/5pdtz cvV9Fhnahi5+W/40kdzLYgMA9A3tLRe6vSZX+VNE21EJ9nOlyNldLDYAQM9oTznH7TE5O81iQ5tREa5w xcjZnS02AMCo0V5ytttbcvZdFhvajsqwtFxYKEfu7mTRAQC6RnvId92ekrMXWWyAxagUb3Ylyd2ZFh0A oGO0d7TpNwvPyIkWHeA5VIwzCkVpg++w6AAAI6I9o033LCS3sOgAz0flSN8lvr9Qlja4j8UHABgS7RVt +TbEEr9o0QHKUUnWdqVpgx+0+AAAz0P7Q/qHVFues7DEP1t8gOFRWQ525WmDsyw+AMDf0b6QHvfclic4 Fl3RRgAwMipM2379lvw3iw8ALUf7QXqRVBveDeHleTXQHSpNOlk/VihRW/yJjQAAWor2gfSK6ja8ddL7 dRsBQHeoPC9zZWqLv5bjbAwA0CK09l8uF9le0CbnSJsCwChQgQ4sFKpN3i15FCpAi9Ca36mwB7TNFWwM AKNHRfq+K1ZbfFa+zMYAABmjtX5YYe23ze1sDAC9oTIl/1ooV9vc0UYBABmiNX66W/Nt8lgbA0B/UKnS q7Db+He9JX7cRgEAmaB1PUFeW1jnbfNyGwVAf1G5tnBla5s/ljYNAIiM1vJq8hFb2230ITnexgHQf1Sw QwuFa6N/ltwMCRAYreEdCmu6rc6wcQBUh4r2PVe8tpleBf4aGwcABEJr99jCWm6r3OQI9aHCtfFxqd4j bBwA0HC0XtP9ClcV1m9bPdxGAlAPKt1k+UShhG31IslDngAajNboBpL96vwzvmsjAagXlW8NV8a2mh6h zfMaABqI1ub7C2u1zc62kQAMBpVwK1fKNvshGwsADBitx/QniJ8X1mebnSsn2GgABoeKuH+hmG33MjnJ RgMAA0BrcHP5pK3Jtptu0uZ11dAcVMjPFAradufLLW00AFAjWnvsRc93YxsNQHNQMc9yRW27X5M2HQCo Eq219Erq22zt4WLfbOMBaB4qKF9ber4PyA1sPABQAVpjhxTWHC72vTYegGaiko6RfyyUFhf7WWlTAoB+ oDW1vJxtawyfc5aNCKDZqKwT5f2F8uJi75Ub2pgAoAe0lg4urC18zq/aiABioNK+WHKXcrmnyDE2KgDo Aq2dGZInzZb7IxsTQCxU3ulyQaHM+JzpqXNb2agAYAS0XpJH2/rBF3qJjQogJirxS1yp8fleIJexcQFA CVojr5Hp4UNlawjPP+M6adMCCIyKnJ7jXlZyfM5DbVwAYGhdLCPPLawTfKG/l/yJE/JBhd60UHAsN90U yWuzofVoHSQPt3WBQ5u+kTbWxgaQDyr2qwpFx6H9L7mCjQ2gVaj728iHbS3g0KaHVI23sQHkhwqe/hZZ Vn58oSdJNgRoBer6WvI31n0c3jmSvQHyR0V/daH4OLyL5AelTQ8gL9Tt9BXsH8qy/uML5TcL0C5U+FcW FgCO7ONyNxsfQHjU5/SAty9Zv7Ez0z0LHBagfaj4Ly8sBOzMe+SbbIQA4VB/x8lZ1mfs3PRtCG5whPai BbCeTL92L1sgOLS3y61tjACNR30dKz8mWe/dm56zwFcnAbQQ1pDP2sLA7rxDbmujBGgc6ud4+QnJQWF0 XiJtmgCQNpUV5WO2QLB775Nvt3ECDBz1cbJMb2kt6yt2Ju+GAChDi2OKvLuwWLB758mDJH/rhIGg7q0g vynL+omdy1snAYZDiyT9+jLd3FO2gLBz069/j5e8pwJqQV3bSF4my/qI3TnLxgoAw6HFkry4sHiwN9ML rta38QL0DfUquZtM99KUdQ+79702XgDoFC2cr7uFhL15l3y35M8V0BPq0HLyBLlQlnUNR+ebbcQA0C1a QJ90Cwr7Y/ob85o2ZoARUV+S28pfy7JO4ehNB6+NbdQAMFq0kHYvLCzsr+m3DgfKiTZugOehbsyQp8gF sqxD2JsPyhVt3ADQK1pQm0u+x12tv5BbS5s6tBV1YGl5sEwHyrKuYH+cLSfY2AGgX2hhrSQfsIWG1ZkO ZmfJzWz00AJ0vSfI9Nu8G2RZL7C/fsdGDwBVoEWWnkP/q8Kiw2pNv4Y+U6bf8NhVgFzQNZ0k0yHhWll2 /bEaD7dLAABVowX3FbcAsXrTbx7OlW+S4+xSQDB07ZaV6c8NN8uy64zVup1dCgCoCy28vd1CxHpND9h6 v1zZLgk0EF2fMTK9GfYkOVeWXUus3ofkDLssAFA3WoDp6XJP24LEwfmUPFu+RS5llwcGhK7BKjI9Ivwa WXa9sF4vl+Pt8gDAoNBCXEreaAsTm2H6l+w3ZPrzxRS7VFARmvGqcn+Z3mw4X5ZdExyMx9plAoCmoIV5 sluo2BzTS7HOlwfINSXv9h8lmt1EmW5CnSXT1/L4unFz5X4FgKaiBTrTLVhsruk7/ukbGHvJtSQ3Ujo0 k/Tbs83kR2V6v8oTsmyW2CznyBXsMgJAU9FCXVnyMpyYPi6vlMfJneTqMvu//SpjelDShnIfmd6hcovk yYoxTdfPriwANJ60YOXptoAxvunv8ulfbefJY2R6dsAmcnnZ6AOFPl8yPe8g3WewhUyP4k6PWr5K8iCy vHy7XXYAiIYW8NvcgsY8TX/HT7+duE1eJr8tPy0PkbvKLeXGMt0/saKcKifL9HTD9DCw9NXD5JIf8Mkl /7exMv130r0D6TcB0+R0uY5Mfy7YTu4pPyLTVxd/JNODkNKfXPgGTztMveN9EADR0UJOr+JNv+ItW+iI iL34RdtqACAXtLDTr7LLFjwiYrc+I7ew7QUAckMLPP3d+1Fb8IiIo/EiySvhAXJHCz39TTr9jbtsI0BE HM532VYCAG1BC38b+WxhI0BEHMrr5DTbPgCgbWgDSHfJn2MbAiJime+zLQMA2o42hPTVuHQTU9lmgYjt NP1WYTnbJgAAFqONYbxMjyou2zgQsV3ubVsDAEA52iheLdO768s2EUTM2wvl0rYdAAAMjzaMZHpSYNmG goj5+aR8o20BAADdoQ0kPf//BttQEDFPT5S8ch0AekebSXofAV/BRMzLG+UatswBAPqDNpb0AqL0lsGy jQcR45i+EcWbJQGgWrTRpD9TXGMbDyLG8nOSPz8AQH1o03mDfNA2IURstun9D8vb8gUAqB9tQgfJhbYp IWKzvE2+wpYrAMBg0YaU7m/4gm1QiDh4H5MzbYkCADQLbVBT5Vm2YSFi/S6QB9uSBABoNtqwVpHpb6Zl GxoiVuNRcqwtQwCAOGjzWlteaZsZIlZj+ubDBFt2AABx0Wb2Mvkr29wQsT+mJzROtmUGAJAP2tzWlVfY ZoeIo/PzcpItKwCAfNFmt4b8mW1+iDiy6avLsyR/egCA9qHNbwX5LVm2QSLi+WfMk4dIns4IAKDNcLL8 lOQBUIiLvVPyHAUAgDK0QY6R75E8chrbavpWEU9mBADoFG2ar5ZX2yaKmLtflitY/QEAoFu0iS4vvyj5 cwXm5t/k3pKHLQEA9AttqsmZ8lZZtvkiRvFHcj2rNgAAVIU22+nySzI9N79sQ0Zsmukmxv3leKsxAADU hTbf5Bskj5/GJpoOtF+Rq1tlAQBg0GhTniQPlHNk2eaNWJc/l1tIaycAADQSbdTpRslPygdk2YaO2G+v l7vIcVZDAACIhDbw9KrtYyTPdsB+O1vuKSda3QAAIAe0sa8sPy7vkGU/ABBHMt0vs6vkkAAA0Aa04U+V +8jrZNkPBsTks/Is+XrJ8xIAANpM+kEgXye/KR+XZT84sD3eJtM9MGtYRQAAAF6IflCkmyb3lZfLRbLs hwrm46MyvTV1G8nrowEAYHToh8ia8sMy/fmCA0R8n5A/lm+TU+0yAwAA9Bf9kJkhD5AXyqdk2Q8lbI7p nQ2nyTfLKXYZAQAA6kU/hJaWW8nj5U2S30IMznnyUnmoXF/yXAQAAGgu+kG1rNxWfk6mh/o8Lct+wOHo nSsvkOlwsImcZOMHAACIi36gTZQvk+mVxqfK30kOEiP7kEw3oH5G7iDTw7jG2FgBAADagX74jZPpDZxb y/Sv5TPljTLdvV/2AzQ3F8p75VXyZJmej7GpfLG0KQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADSFF73o/wHdNWkEK4HhBwAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAAgwAAAIMCAYAAACZhvQPAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH4AoSFw0jZJCMXQAANRBJREFU eF7t3Xm4HWWV7/HOHAiRMAaQhEEBgaaBBnFgUJSrIiAI2igC4lXAVsQBpaVpsUVUUHC42jbYoCLihBMi CIIyqICAURkU6QZkEJUZQpiTe3/LrFyKlUpyztm79q711vfzPN9/Wh97r7eq3rNzzt5VfwcAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAQGm2P+uL49U0tZbaTO2k9lXvVSeo09Q56pfq9+o2dY+aqx5VT6r5aoH6v0vI/jP77zyhHlEP qDvVzeoa9TP1fXWy+og6RL1Gbac2VKuqKcpfNQAA6Bv9gJ2oZqpt1H7qY+oH6jp1v1raD/m2Zm86/qKu UF9VR6g91KZqRTXOxwcAAIvoB+Qkta7aVR2tzlN/UvYv+rofuF3IfvNxvfq6eqey31SspngzAQAom37Y TVDrqdepE5X9lsD+tV33A5OW3IPqEmVvruzPL/bnDl9lAAAS0Q+wyWpz9R51vrLPC9T98KP+dbuyz2vs o2YrfhsBAGgP/WCy7E8Kb1Znq4dU3Q80Gnz2JuIL6pVqhh8yAACapx889kHELdUx6g+q7gcVtTP7E9BF 6iA1S/lRBQCgR/qhYl9btDcIH1e3qLofRJQz+5bJZept6pl+yAEAGBn98LB/fR6mfqfqftBQmdk9Kc5V e6oV/HQAAGAh/XCwrzbaJ+6/o/jmAi3Kbk51nHqO8rMFANAp+gEwQx2s7E6FdT8siKrZfTHOVC9VE/w0 AgCUSBu93TXxX9WfVd0PBaKRdrnaS0320wsAkJk2dHuT8AFlz0+o2/iJem2Oeq3izQMAZKKN255J8G5l zyyo2+CJmupStbMa76cjAKBNtEHb/RH+SfHNBmpL9iHaLfwUBQAMk23Iyj6MVrdhE7Whh9WH1ap+2gIA BkEb73Rlj0XmGQ2ULftWjj2ZlGddAEBTtMk+T12s6jZiokzZ1zQ/o1b30xsA0AttqPbkx0OVPda4buMl yp59y+LFfsoDAEZDG+jayh5XXLfBEpXYPPUuNckvAwDAkmizfIGyf3HVbahEXelkxZ8rAKBKG6NlX4m0 e/fXbZ5EXe1CtbFfKgDQTdoIJyj7fMJjqm6zJKKFXa+280sHALpBG599kPHf1QJVtzkSUX32HJRX+qUE AGXSRjdVfdw3PiIae/eqPf3SAoAyaGOboo73jY6I+tf9ijcOAHLTRmbPdzjGNzYiai57GusufukBQA7a uMap9/pGRkSD63a1vV+KANBe2qz2V4/75kVEw+latYlflgDQHtqcXqLs16J1mxcRDafzFTeAAjB82oye ra72zYmI2tnn1WS/bAFgcLT5TFPf8M2IiNqf3ffkrX4JA0CztOFYh/kGRET5sluwP98vaQDoP20y26n7 fNMhotzZ5xtW8ssbAHqnTWWGusA3GSIqqyOUX+0AMEbaSN5T2ViIqMzsG07P9cseAEZOm8em6g7fTIio G31LTfFtAACWTJvFeHWSbx5E1L3s2xR7+ZYAAIvTJvEi9YhvGkTU7X6hZvj2AAB/e6MwSX3TNwkiomr/ 27cKAF2mzWBHxbMfiGhpXaX4CibQRbr4J6jTfTMgIhpJ+/kWAqALdNFvpeZVNgEiopH2U7WcbycASqUL /ROVC5+IaCzNVzv5tgKgJLq411K3+MVORNSPTlHjfJsBkJ0u6P0qFzh1O/uA64PKHkBkbyB/r36jfql+ ri5WF6qL1CXKvlp3pbJHmN+gbld2V0D7k9aTqu7/B3Wrv6p1fbsBkJEuYvtg45l+UVOZ3a+uUd9Rx6mD 1MvUP6hnqunKvjbb2L8C7X9bTVH2zJF11TZqD/Vu9R/qx+om9bCqm4HK6C1+SgDIRBfvRuqBysVMOXtU Xau+pN6u7Imha6rJfqhT0eu2pqlnqV3UkeoH6jZldxisWwPK0w/VBD/cANpOF+yBlQuYcvSYsu+624dS 7Qfp2qpzG69mXk5tot6ovqJuVnXrRe3N/qHybD+kANpIF6n9avh7ftFSe7PfGthnBA5Tm6upfghRQ+tj raxeqk5Q9rmLunWldnWAH0IAbaKL074FYR8+qrtwabjZhws/rXZQ0/yQoQdaR2sNtbeyz2/MVXVrT8Pt q8qPGoCh0wX5isoFSsPvv9WH1GZqvB8mNExrbZ+NsA98nqr4/E57sj8rcVtpYNh0IR5TuTBpON2nPq+e q/jAV0voWNg3RPZU5yq70VDdsaPBZB9ofb4fGgCDpItvvLrAL0YafHbfAvtg3op+SNByOlb2zYyj1R2q 7phS873dDweAQdBFt5qyG+/UXZDUTPYvpO+qFyn+zJCcjuEz1JuU3ZCq7nhTc33FDwOAJulis5vi8H31 wWS/xv6a+kflRwCl0bG1m069Rv1K1Z0H1P/sjRrfDgKaogts/8oFR81ld8e0N2a+8ugKHXN787Cvul7V nRvUv+ybLWv70gPoF11YH69caNT/5qhdFX9uwN/oXFhRHa7uVXXnDPWnbX3JAfRCF5Nlt86tu9Cot+wh TP+ipvtyA7V0jtit1u3PU3XnEfXefr7UAMZCF9FkZc8RqLvAaOydp7b0ZQZGTOeNPdBtH3Wrqju3aOwd 7csMYDR08ditcO+uXEzUW4+oI9TyvsRAT3Qu2dc0z1B15xuNrdN8eQGMhC6a9dUTlYuIxp59eO1lvrRA 3+n8sg9K2mcd7BkhdecgjS57zkpjj2MHiqELxe4WWHcR0eg6W/HEPAyUzrndFH+u6D17o5/yEe7AQOgC eXnlgqGx9Z+K+9ZjqHQO2r07rvRzksaWPUyPDyQDkS6M11cuFBp9H1ZTfDmBVtA5aX9ePN/PURp989Tq vpwAdEG8tXKB0MizO17aBxl54BNaTeeoPX7+LFV3HtPSs89zreNLCXSXLoT3VS4MGnm8UUA6OmfXUD/0 c5hGnv3jYCNfRqB7dAEcVbkgaGTZ0wYn+hICKekcnqV+6uc0jbzNfAmB7tCJ/5FwIdDSsw8zLufLBxRB 5/TG6rd+jtPI+kdfPqB8OuGPDRcALblz1Kq+dECRdI7voOxbAXXXAC3e1r50QLl0ovNmYWTdoDb1ZQM6 Qef8Acoeq153TdDT28qXDSiPTnD+DLHsHlN7+JIBnaPz355X8Wm/Hmjp8UwYlEcnNh9wXHYfVdwSFhBd C/aNisv82qAlx28iUQ6d0Hx1culdrmb6cgGo0LVhd4B92K8Vqm8DXy4gL53I3JRpyT2udvWlArAEuk7G qU/6dUOLZ/dpWNuXC8hHJzC3e15ypyhuvASMgq6Z9dSNfg3R07N/gKziSwXkoROXB0nVd7fa3JcJwBjo Gjqkck3RUz2glvdlAtpPJyyPqK7v48pXCUAvdC2tqub4tUVPdbvibrBoP52o9nS6upO4y92lNvYlAtBH urYOqlxrtLDfKF8hoIV0gq6s7MlqdSdwV7Pvk/sKAWiCrrHV1O/8mqOFnevLA7SLTs7Jyv4+X3fidjH7 GthzfXkADICuufdXrkE664sn+tIA7aCT0rq2cpJ2vR8o/oYIDIGuvY3UfX4t0llfPNyXBhg+nZD2A7Lu RO1ir/dlATAkug7tvg2nV67LrvdqXxpgeHQi2if/607QrnWbWtOXBUAL6Jrcq3KNdr0tfFmAwdMJuH84 Ibval5SvCoA20bVpz6SwrxrWXbtdyu4GyaPyMXg68bapnIhd7jW+JABaStepdVrluu1qdyruMIvB0Qln X2Gyd6t1J2RXulet40sCIAFds/xW9Kwv/syXA2iWTrbxyt6l1p2IXekninfpQEK6dp+jHvFruat9xpcD aI5OtAvCide1/t2XAkBSuo6nql9Xrusuxje60BydYMeEE65r8ShqoCC6pk8O13jX4pb16D+dWK8IJ1qX sl9fru9LAaAgurbfWrnWu9ajaqovBdA7nVBrVk6wrnWD4nGxQMF0jW9fuea71hxfBqA3Opnsjml/rZxc Xeoc5SsBoGS61mcrewZM3V5Qeif4MgBjpxPpe+HE6kqf8iUA0BG67qepmyv7QJfaxZcBGD2dQAeGE6or HepLAKBjdP3bV8d/VtkPutRqvgzAyOnE2TCcSF2Jh7QAsD3w62Fv6EK3KF8BYAR0wkxQD/gJ1KW29SUA ANsLTwh7RBf6go8PLJtOmDPDCdSFNvHxAeD/097w/rBXdCE+z4Bl04myXzhxSu8JNdvHB4DFaI84qLJn dKUZPj6wOJ0ga4UTpvTshkwzfXwAWCLtFW+o7B1d6FofHVicThD7wEvdiVNic9VKPjoALJP2jFdX9pAu dJSPDjxFJ8YnwolScvaBzhV9dAAYMe0du1X2ki60qY8O/O0C2CqcICVnbxam++gAMGraQ3ap7CmlZ3vm OB8dXaYTwb5COc9PjNKzP0PwmwUAPdNe8qrK3lJ63JwBfzvpTw8nRqnZBxz5zAKAvtGe8prKHlN6O/jY 6CKdADuGE6LU7KuTq/vYANA32lv2r+w1JfeYmuhjo0t04Cepx/1EKLkFivssAGiM9phDKntOyZ3hI6NL dOC/GU6EUuMOjgAap73mqLD3lNqLfWR0gQ74i8IJUGo8GwLAwGjP+Y+wB5WY/Wligo+MkulA26NbH/YD X3I8dRLAwGnv+V7Yi0rsyz4uSqYDfWI48CV2qI8LAAOnPeiqsCeV2FY+LkqkA7xJOOAl9kkfFwCGQvuQ 3d/mjsq+VGL3KJ8YxdHBLf0EPttHBYCh0n40Q9lXuuv2qlL6kI+LkujAvicc6NL6g/JpAWD4tCdtWNmj Sm0NHxcl0AG1d7p1B7qU7C6Oy/u4ANAa2pteWdmrSuwqHxUl0AG9IBzg0lrfRwWA1tEedXjYs0prdx8V melAbhcObGnt4qMCQGtpr/p22LtKyu4aPN5HRUY6gNZ9fkBL7IM+KgC0mvYr66bK/lVan/JRkZEO4GHh gJbUBT4mAKSgfcs+Tza/so+VFh+AzEgHblo4kCV1r+LWpADS0d61TWUvK61LfUxkogP3jXAgS4qnTwJI S3tYyb/93c7HRAY6YM8OB7Ck9vIxASAt7WXnhr2tlO7yEZGBDtjV4QCW0ik+IgCkpv1soppb2d9K6i0+ JtpMB2rHcOBK6VblUwJAftrTSr0TpH2wk8+ZtZ0Okj0QpO4AZo9P3wIojva2Q8JeV0rH+ohoIx2g/cIB K6W9fUQAKI72uJ+GPa+UpvuIaBMdmHHK7rZVd9Ay930fEQCKpH1uqirxyZan+YhoEx2Y94YDVULz1EQf EQCKpb2u1Nv4z/QR0QY6IPZp2wWVA1RKW/uIAFA87Xn/GfbAEjrHx0Mb6IAcEw5QCX3SxwOATtC+Z91d 2QdLaV0fEcOkAzElHJgS+qvyCQGgO7T3bVzZC0vpIh8Pw6QD8YlwYEpoIx8PADpHe+BHw55YQhv4eBgG HYASf7vwMR8PADpJ+6Blv2mt2yOz9jMfD8OgA/DxcECyd5fy6QCgu7QXlviniWf5eBgkLfzkcCBKaDMf DwA6T3viZ8Iemb0LfTQMkhb+38OByN4XfDQAgGhftBvyPVTZJ0tolo+HQdCCT1Al3XfhMcWDSgAg0N64 fWWvLKGzfDQMghb80HAAsvdKHw0AEGiPPDvsmdlbxUdDk7TQlv2LvO4gZOwXPhoAoIb2yRXCvpk9Pt0+ CFro14aFz97qPhoAYAm0V5b2m+WpPhqaokW+Myx65j7sYwEAlkF75l/CHpq5D/pYaIIW+AVhwTP3qBrn owEAlkF75jaVPTR78xU/A5qixZ1TWezs7eZjAQBGSHvn+WEvzdw+Phb6SQu7dljozF3vYwEARkH756ph P83cXT4W+kkLe1pY6Mw9x8cCAIyS9tBPhj01c1v5WOgHLWhJt4Hmph0A0APtoxNVKTfv+7mPhX7Qgr4j LHDmuGEHAPRIe+nbwt6auZV8LPRKi/lgWNysfc5HAgD0QPupVcpzJj7hY6EXWsjnhYXNHDfqAIA+0Z66 Z9hjs2ZfsfSpMGZaxIsri5o5btIBAH2mvbWUmznt6iNhLLSApdw/3D6cw9MoAaDPtLfuVNlrM/c7Hwlj oQV8f1jQrL3PRwIA9Jn22FvCnps1ni00Vlq8uWExM2Z/mxrvIwEA+kx77Isqe27mTvCRMBpauC3CQmaN 3y4AQMO0194a9t6MPaF8IoyYFu3MyiJmjc8uAMAAaK99SWXvzdz2PhJGQgtmd/GqW8hs8c0IABgQ7bl/ DXtwxi7ycTASWrB/CguYtck+EgCgYdpzXxX24KxN8ZGwLFqs68LiZeyzPg4AYEC0984Le3HGDvBxsDRa qBXDwmVtRR8JADAg2nsPCntxxm7ycbA0Wqh3h4XL2Jk+DgBggLT/jlclPMlyZR8JS6JFKuE2n+v5OACA AdMefFzYkzP2Lz4O6miBZoYFy9h1Pg4AYAi0D08P+3LG7vRxUEcL9IGwYBl7iY8DABgS7cVnh705Y2v4 OIi0OPeExcrWPB8FADBE2o+fE/bnjHEvnzpamBL+HMFtoAGgJbQn3x726Gzd5aOgSgvzr2GhMracjwMA GDLtya8Le3TGeIJlpEX5c1ikbP3QRwEAtID2ZfuKZd1+nSl+c12lBZkRFihj/+DjAABaQnvzKWGvztat PgqMFiT7nbnu81EAAC2i/Xl22K8ztoKPAy3GNWFxsnWYjwIAaBnt0dk//PgGH6XbtBCTwsJkjHd/ANBS 2qPfFPbsbP3SR+k2LcROYWGydYWPAgBoIe3Tk8O+nbHxPk53aRG+ExYlW6/wUQAALaW9+qdh787W83yU 7tIiPBEWJVvjfBQAQEtpr94h7N3ZOtlH6SYtwKywINn6to8CAGgx7ddW5sdez/VRukkLcFhYkGxt5aMA AFpOe/bpYQ/P1ko+Svdo+N+FxcjUkz4GACAB7dtbhH08W/v5KN2iwbPfsvNUHwUAkIT27ifDXp6pC32M btHgW4aFyBa3ggaAZLR3nxr28kwt8DG6RYMfFxYiU/OVTwIAyEJ7d/Z/rM7yUbpDQ98SFiFT3/QxAACJ aP+2Mn9b4u0+Sjdo4IlhAbK1rY8CAEhGe/iZYU/P1OU+Rjdo4Oy/EuIWnQCQlPbwl4Y9PVPd+hyDBj4m LECmfuFjAAAS0j4+Iezr2VrLRymfhv1DGD5T+/gYAICktJdfHfb2TB3gY5RNg1p1C5Cl6T4KACAp7eX/ HPb2TJ3tY5RNg64bBs/U3T4GACAx7eerh/09Uw/7GGXToG8Og2fqMz4GACA57emPhD0+U8v7GOXSkGeH oTO1pY8BAEhOe/rXwx6fqe18jHJpyIfC0Jni65QAUAjt6S8Pe3ymjvUxyqQBJ4eBM/V7HwMAUADt68uF fT5T1/gYZdKAm4eBM/VvPgYAoBDa2+8Je32Wyr6BkwZ8Txg4U5v4GACAQmhvPyXs9Zma4WOUR8OdH4bN 1DgfAwBQCO3tmW8T/WIfozwabm4YNks3+ggAgIJof58W9vtMfdTHKIsGy3zv7o/7GACAwmiPnxf2/Cxd 4SOURYOtFwbN1At9DABAYbTHnxX2/Cw96iOURYO9LgyaqeV8DABAYbTHHxD2/ExN9jHKoaFODENmaZ6P AAAokPb52WHfz9QGPkY5NNR1Ycgsne8jAAAKpH1+XNj3M7WPj1EODfVEGDJLh/oIAIBCaa+/Pez9WTrR RyiDBpoUBszUpj4GAKBQ2utPDXt/ln7rI5RBA60bBsxUeR8oAQA8jfb614e9P0tlfVNCA+0aBszSIz4C AKBg2u/XCft/pib4GPlpmA+F4bJ0mY8AACiY9vvMNxec6WPkp2HOC8NlqczbbgIAFqM9P+vjC3bwEfLT MH8Kw2XpZT4CAKBw2vMvCT8DsvQOHyE/DTM/DJelNX0EAEDhtOcfE34GZOnLPkJuGmRiGCxT430MDJGO w3S1vtpB2S1ciUrJzml7zs50P90xRDoOO6u6nwVt7zc+Qm4aZGYYLEsP+wgYAq3/s9Sx6h4/HkSld7f6 qFrfLwMMmNZ+bT8W2XrAR8hNg2wTBsvSr30EDJDW3d5g/rhyHIi62DlqNb8sMCBa87S/EfcRctMg+8XB knSSj4AB0ZofEY4BUdd7r18eGBCtecrHGPjLz02DfCwOlqQDfQQ0TGttfbey9kT0VN9UfrWgaVrrmytr nyZ/+blpkB/EwZL0fB8BDdNaXxrWnoie3sV+uaBhWuuUP7P85eemQbI+1np1HwEN0jp/Lqw7EdX3Sb9s 0CCt8wfDuqfIX35uGuT+OFiSJvoIaIjWePew5kS09Hb2ywcN0RrvFdY8Rf7yc9MgC+JgCVrgLx8N0Rpb D1XWnIiW3f1+CaEhWuPNwpqnyF9+XhpifBwqSXf7CGiI1vjtYc2JaGTxgewGaX1XDuudIn/5eWmIaXGo JM3xEdAQrfGDYc2JaGTxW4YGaX1T3ovBX35eGmKtOFSSvuEjoAFa3zXDehPR6OJD2Q3S+qb7U7q/9Lw0 RMq/BakP+whogNb3/WG9iWh0HeaXExqg9U33mGt/6XlpiJ3iUEk6wEdAA7S+3PqZqLfO8csJDdD6/k9Y 79bnLz0vDbFvHCpJO/oIaIDWN93FSNSybvDLCQ3Q+v4krHfr85eel4Z4bxwqSZv4CGiA1ndeWG8iGl1z /XJCA7S+Xw7r3fr8peelIU6IQyVppo+ABmh9Uz7chahFPeGXExqg9T06rHfr85eel4Y4LQ6VpOV9BDRA 68sbBqLe4g1Dg7S+B4f1bn3+0vPSEPZM99rhWt4EHwEN0PryhoGot3jD0CCt7x5hvVufv/S8NMQv41BJ 8gnQBK0vbxiIeos3DA3S+m4b1rv1+UvPS0P8Pg6VIJ4j0TCtMW8YiHqLNwwN0vpuGta79flLz0tD3BaH StCj/vLREK0xbxiIeos3DA3S+s4O6936/KXnpSHuiUMl6D5/+WiI1pg3DES9xRuGBml9Vw3r3fr8peel IdLdXlPd4S8fDdEa84aBqLd4w9Agre/0sN6tz196Xhri0ThUgv7HXz4aojXmDQNRb/GGoUFa36lhvVuf v/S8NMSTcagEXe0vHw3RGvOGgai3eMPQIK3vpLDerc9fel4aYn4cKkFX+stHQ7TGvGEg6i3eMDRI6zsh rHfr85eel4ZI90xx9XN/+WiI1pg3DES9xRuGBml9x4X1bn3+0vOqGypBP/WXj4ZojXnDQNRbvGFokNaX NwyDVjdUgi7wl4+GaI15w0DUW7xhaJDWN93PL3/pedUNlaDz/OWjIVpj3jAQ9RZvGBqk9eUNw6DVDZWg H/vLR0O0xrxhIOot3jA0SOvLG4ZBqxsqQT/xl4+GaI15w0DUW7xhaJDWl88wDFrdUAm60F8+GqI15g0D UW/xhqFBWl/eMAyahsj4tcpL/eWjIVpj3jAQ9RZvGBqk9R0f1rv1+UvPS0NkvHHTr/zloyFaY94wEPUW bxgapPXlxk2DpiEy/mC4zl8+GqI15g0DUW/xhqFBWt/JYb1bn7/0vDTEI3GoBP3RXz4aojXmDQNRb/GG oUFa3+XDerc+f+l5aYgH4lAJ+qu/fDREa8wbBqLe4g1Dg7S+K4b1bn3+0vPSEHfGoRL0oL98NERrzBsG ot7iDUODtL4zw3q3Pn/peWmIm+NQCXrcXz4aojXmDQNRb/GGoUFa3/XDerc+f+l5aYhr4lAZ8pePhmiN ecNA1Fu8YWiQ1neLsN6tz196XhriZ3GoJI3zEdAArS9vGIh6izcMDdL6viSsd+vzl56Xhvh+HCpJk3wE NEDryxsGot7iDUODtL57h/Vuff7S89IQJ8ehkvQMHwEN0PryhoGot3jD0CCt7zvDerc+f+l5aYiPxKGS NMtHQAO0vrxhIOot3jA0SOt7fFjv1ucvPS8NcUgcKklb+ghogNb33rDeRDS67vHLCQ3Q+n4rrHfr85ee l4Z4TRwqSbv4CGiA1ve3Yb2JaHT9xi8nNEDre3lY79bnLz0vDbFdHCpJh/gIaIDW97thvYlodH3bLyc0 QOt7e1jv1ucvPS8NsWEcKkmf8hHQAK3vXmG9iWh0vdovJzRA6/toWO/W5y89Lw2xWhwqSWf7CGiA1ndq WG8iGl1T/XJCn2ltrbo1b3X+8vPSEFPiUEn6g4+AhtgahzUnopF1vV9GaIDWN+XPLX/5eWmIlO/U1EM+ AhqiNX5uWHMiGllb+2WEBmh91wzrnSJ/+blpkKzfufcJ0BStcbpPIhMNucv88kFDtMbPD2ueIn/5uWmQ v8TBkrScj4CGaI3XCWtOREtvtl8+aIjW+E1hzVPkLz83DXJFHCxJ6/gIaJDW+WVh3Ymovp38skGDtM6f DuueIn/5uWmQr8bBkvQyHwEN01r/S1h7Inp67/PLBQ3TWl8S1j5F/vJz0yBHxMGSdLiPgAHQer8qrD8R LWw3v0wwAFrvu8L6p8hffm4aZI84WJK4k9qAac2frW6uHAOiLmfXwrP88sCAhGOQJn/5uWmQTeNgSbrZ R8CAae13VQ9UjgVRl7Jzn+fZDIHWffnKccjUfB8hNw2yYhgsS0/6CBgSHYPZ6oPqT+pxVXeciLJn57ad 43au82j9IdL6b6zqjlHb+4uPkJsGGRcGy9QUHwMtoONh2W2liUrJz260gY7HvqruZ0Hbu8RHyE/DpHuQ h7ehjwAAKJz2/JPCz4AslfPARA1zfRguS/v4CACAwmnPvy78DMjSvj5Cfhrm62G4LJ3sIwAACqc9/8nw MyBLm/sI+WmYd4bhsnSDjwAAKJj2++XC/p+pZ/gY+WmY7cJwWVrgIwAACqb9fouw/2fKpyiAhlktDJep FX0MAEChtNe/K+z9WbrXRyiDBsr81codfAwAQKG0158b9v4sXegjlENDPRiGzNKxPgIAoFDa6x8Ke3+W jvERyqGhUj4BTF3tIwAACqR9fnLY9zNV3pOVNdTRYcgs8cFHACiY9vktw76fqTV8jHJoqJ3CkJlazccA ABRGe/yRYc/P1DgfoxwaatUwZKb29DEAAIXRHn9V2POzdI+PUBYNZtUNnKFv+BgAgMJoj18Q9vwsne0j lEfD3R6GzdL9PgIAoCDa39cM+32mDvUxyqPhTgvDZmo5HwMAUAjt7fuHvT5Tm/kY5dFwbwjDZuolPgYA oBDa288Pe32mpvgY5dFws8OwmfovHwMAUAjt7U+EvT5L83yEMmnAzLeILut+3QDQcdrX1wj7fKYu8DHK pSGzfvDRmuZjAACS055+YNjjM1XuBx4X0ZBfCENnajcfAwCQnPb0S8Men6mNfIxyachXhqEzdZaPAQBI TPu5VbfPZ2mCj1IuDTkjDJ2pJ30MAEBi2s83Dft7pu7wMcqnYbN+KtVa18cAACSlvfyEsLdn6iQfo3wa 9qIwfKY+4GMAAJLSXn5P2NszVd4jrZdEwx4chs/UbT4GACAh7eOZ/zRureCjlE/DzgrDZ6s7BwsACqM9 PPPXKR/yMbpBA1tZnw5m7eujAACS0R5+bdjTM3WGj9EdGvrysAiZmuNjAAAS0f49Jezn2XqVj9IdGvpt YRGyNclHAQAkob17z7CXZ2u6j9IdGvqZYRGytbuPAgBIQnv3ZWEvz9SDPkb3aPgnw2Jk6nIfAwCQgPbt SWEfz9aXfJTu0fDnhsXI1mQfBQDQctqzs/854sU+Svdo+OwHb28fBQDQctqz54Q9PFvd/eychl8hLEa2 rvVRAAAtpv16+bB/Z+tGH6W7tAh3hkXJVvc+sQoAyWivznyzJusIH6W7tAjHhUXJ1nt8FABAS2mvvi3s 3dma7aN0lxZh47Ao2brbRwEAtJD26TXDvp2tx32UbtNCWPMrC5OxZ/s4AICW0R79qbBnZ+trPgq0GD8I i5OtU30UAECLaH+2nqjs1xnb1seBFmOnsDgZG+/jAABaQnvzjmGvzhg/XxbRYkwIi5Ox1/o4AICW0N58 Zdirs3WJj4JFtCiZn15p3eSjAABaQPvySmGfztgePg4W0aK8JixSxtbzcQAAQ6Y9OfvX9i0eQRBpUbI/ o9zik6wA0ALaj63MDzi05vg4iLQ4vw6LlTHeDQLAkGkv3iPszRl7nY+DSIvzT2GxMvZuHwcAMCTai28J e3PGpvg4iLQ4k8NiZexhHwcAMATah7PfQdi60sfBkmiRLg2LlrGdfRwAwIBpD74g7MkZ293HwZJokXYO i5axm30cAMAAaf9dJezHWZvgI2FJtEjjw6JlbXMfCQAwINp7Tw57ccbO83GwLFqs74bFy9jlPg4AYAC0 704N+3DWXugjYVm0WFuGxcvaOj4SAKBh2nOPCXtwxuzeET4RRkQL9khlAbP2Ix8HANAg7bclPJPI+pyP hJHSopXwTtFaw0cCADREe+3hYe/N2iwfCSOlRVs1LGLWvucjAQAaoH3WPiw/v7LvZu12HwmjpcW7Nixm 1lb3kQAAfaY99rCw52btjT4SRkuLt2tYzKx930cCAPSR9lf77MKCyn6buYk+FkZLizdOlXIiPNPHAgD0 ifbWI8Nem7UzfCSMlRbx/4RFzdr5PhIAoA+0r5bw/KFFbehjYay0iDPDomaOEwIA+kR76vFhj83aHT4S eqXF/HVY3KzN8ZEAAD3QfvqMsL9m7g0+FnqlxdwxLG7mtvWxAABjpL30G2Fvzdx4Hwv9oAWdFxY4a3/2 kQAAY6B9dHbYVzP3WR8L/aJFfVdY5Mzt52MBAEZJe+iVYU/N3Co+FvpFi1rSp2Ht4SI86xwARkl75w6V vTR7l/hY6Dct7ilhsTN3vI8FABgh7Z33hr00c5v7WOg3Le7qYbGzxy2jAWCEtGeW9KdpnhvRNC3yRWHR M/dzHwsAsBTaL6eF/TN7u/loaIoWeZOw6NnbyUcDACyB9srvhb0zcw/7WGiaFvv6sPiZs6+LjvPRAACB 9sitK3tmCb3VR0PTtNjbh8XP3id8NABAhfZH6+7Kfpm9+YobNQ2SFvzPlQNQQuv4aAAAp72xlKdRLuoD PhoGRYu+SzgI2bvBRwMAiPbFNcM+WUKTfDwMkhb+vnAgssfftQDAaU+8OuyR2TvWR8OgafH3CgejhLhN KIDO0154YNgbS2iqj4dh0AG4PxyQ7F3powFAJ2kfXCnsiyXE3X2HTQehxN8yvNnHA4DO0R54VdgTS4jf LrSBDsQ94cCUEH+aANA52vsOCnthCX3Mx8Ow6WDsGg5OCV3j4wFAJ2jfWyPsg6U02UdEG+iA/CkcoBJ6 n48HAMXTnndD2ANL6EgfD22hg1LSM9KrbeAjAkCxtNd9KOx9JcRdHdtKB+a6yoEqJft8Bs+aAFAs7XFb VPa8kjrYR0Tb6OBsGg5WKX3FRwSAomh/m6jsIXx1e1/m5iqfEq2kA3RB5YCV1Kt9RAAohva2H4W9rpR2 8xHRVjpIM8NBK6nVfUwASE972sFhjyulG31EtJ0O1onh4JXSrcqnBIC8tJdtVNnbSmtzHxNtp4M1ORy8 kvqyjwkAKWkfm6Tsb/x1e1z2zvUxkYUO2j+Hg1hS+/qYAJCO9rCLwp5WUtylNyMduLvCgSypDX1MAEhD e9dRYS8rKW4BnZUO3gvCwSyph9UUHxUAWk971k6VPay0HlPcpCkzHcBSv2Zp/crHBIBW0361Vti/Smt3 HxVZ6SCW+Fz1aif5qADQStqn7OZM91X2rdL6rY+K7HQwjwwHt7QO9FEBoHW0R10W9qzSmuWjIjsdTMue yVB3oEtpWx8XAFpDe9NJYa8qreN9VJRCB3WbcJBLjHe5AFpDe9I7wh5VWvbhcx4OWCId2DMqB7rE7AEu y/u4ADA02oteUdmbSm1HHxel0cGdohZUDnaJ3ah4xwtgaLQHlfrk4Go/8nFRKh3k14aDXmIX+7gAMFDa f+wBgKX/w8ya5iOjZDrQl4YDX2Kn+7gAMBDad5ZXpT4johq35+8KHezS782wqE/4yADQKO03E9Rtlf2n 1K7wkdEVOuhvDidBqR3uIwNAI7TPWFdX9p2SW9nHRpfowP8qnAil9hYfGQD6TnvMJWHPKTX20q7Swe/K nyas1/vYANA32lvODntNqfGniK7TSbB/OClKjoejAOgb7SnfCntMyc3wsdFlOhEuCidGye3iYwPAmGkv OT3sLSW3t4+NrtPJYF8Fml85OUpvZx8dAEZNe8hXwp5Scuf62MBCOin+VzhJSm9XHx0ARkx7R5d+s/C4 muyjA0/RifHFyonShfb00QFgmbRndOkzC9YLfXTg6XRyjFN3Vk6WLsQdywAsk/aKrnwbYlEn+OhAPZ0k 64WTpgu9zccHgKfR/mB15T4Li7rJxweWTifLQeHk6UL/5uMDwN9oX7DbPXflDo7VVvMlAJZNJ8w54QTq Qp/z8QF0nPYD+/ZYF54NEdvDlwAYGZ009s76wcpJ1JW+40sAoKO0D9gjqrvw1MnYyb4EwOjo5NkgnExd 6Uo1wZcBQIfo2t9ULfC9oEv9UfkqAGOgE+hNlROqS/1JrejLAKADdM2/orIHdK1VfRmAsdOJ9LVwYnUl u2nJBr4MAAqma/0dlWu/a73UlwHojU4my35dVXeidaFX+FIAKJCu8ZPCNd+ljvZlAPpDJ5U9CruLf9db 1Pt8KQAUQtf1RHVZ5TrvWhf5UgD9pZPrBeFk61pnKF8NAJnpWl5L3efXdhe7V0305QD6TydYl//OZ92o +DAkkJiu4Z0q13RXe6YvB9AcnWhfDSde17JHgT/XlwNAIrp2j6pcy12NDzlicHTCXRNOwC72Hl8OAC2n 63WSuqhy/Xa1w3xJgMHQSTdVPVQ5CbvajxQ3eQJaTNfoRqqLd26MfdWXBBgsnXyzwsnY1ewW2tyvAWgh XZsHV67VLjfHlwQYDp2E24WTssu93ZcFwJDperSvTNpvAOuu1a51j5rkSwMMj07EN1ZOzK73EzXFlwbA EOga3ELN82uy69mHtHlcNdpDJ+SHKydo13tCbetLA2CAdO19qHIt0llf/HtfGqA9dGKeHk7Urvd55asD oEm61tZQN/i1Rwt7uS8P0D46QS8JJ2zXu0s9x5cHQAN0jR1UueZoYW/25QHaSSfpOPWHyklLC/uI8lUC 0A+6puwZN1f5NUZPdZQvEdBuOlknqzsrJy8t7C9qY18mAD3QtXRg5dqip/q8LxGQg07aZ6iHKycxPdWn 1ThfKgCjoGtnTXW1X0v09M7wZQJy0ck7Uz1ZOZnpqewumdv5UgFYBl0v1pF+/dDiXeBLBeSkk3jdcFLT 0ztbreDLBaCGrpGt1d1+zdDiXaF8tYDEdCI/p3JiU33v8OUC4HRdTFPfq1wntHj2IED+xIly6ITevHKC U332oUgemw2IroV3Va4Nqu+/1XhfMqAcOrG3qpzotOR+rFbxZQM6Ref+DupevxZoyd2kJvqyAeXRCf7c yglPS+8ExYaATtC5Pltd6ec+Lb0/Kh4mhfLpRLcPMNVdBLR4C9TblK8eUBad2/YV7G+ouvOfFs9+s8Cb BXSHTvh/rFwAtOzmqlf78gHp6Xy2G7wd7+c3jSz7zAK/dUT36MT/+8qFQCPrz+qlvoRAOjp/JyjupzD6 7NsQfMAR3aULYENlv3avu0Boyd2idvBlBFpP5+t4dZjieh99dp8FvjoJ6EKYpR73C4NG161qR19KoHV0 ftpvFA5X81XdOUxL7wLlqwnANpVV1YN+gdDo+6t6lS8nMHQ6H6eqY/z8pLHFsyGAOro47K5uf6pcLDT6 5il7ih9/68RQ6NxbRZ2s6s5PGnk8dRJYGl0kExVPous9+zvxsYrnVGAgdK5trOzX53XnI42uo3xZASyN LhbrvMrFQ71lD7jayJcX6BudV9Yeyj6EW3fu0eh7sy8vgJHShfOFcCFRb92uXqf4cwV6onNoJXWc4vH1 /e3lvsQARksX0PvDBUX96RQ125cZWCadL9aOits39z/7Bsnf+1IDGCtdSHtVLizqb/Zbhzepyb7cwNPo 3FhTfUo9oerOIeqte9RqvtwAeqULakvFDV+a7afKnhToq46u0jmwvLJv29ym6s4V6k9zFM+FAPpNF9Zq 6i6/0Ki57I3Z6WoLX3p0gI73JLWnsh9idecF9bev+tIDaIIuMrtr3M8rFx01m32o7VRlv+Hxo4BS6JhO UfYm4TJVd/ypmQ7zQwCgabrgPhsuQGo++83DmeqlaoIfCiSjYzdD2Z8brlV1x5majYfHAYOmC2+fcCHS YLMbbL1Vre6HBC2k42Ntqk5Q9gG7umNJzXeveqYfFgCDpgtwE/WoX5A0vB5RX1cvV8v54cGQ6Bisoey3 CJequuNFg+0iNdEPD4Bh0YW4nPqNX5jUjuxfsvY8AfvzxTQ/VGiI1ti++ri/Ol/x9cd2dbQfJgBtoQvT vited8HS8LOHYp2lDlCzFc/2HyOt3WRlH0I9Ul2l+Lpxe+PzCkBb6QLdNVyw1N7splH2DYzXq3UUH6QM tCb227Mt1LvUueohVbeW1K7+qFb1wwigrXShrq5u9QuXcjVXXayOUTurtVXxf/vVjHajJHva477qJHWd 4jkNObM/xfmRBdB6dsGq//ILmPJnf5e/Wf1AfVDZ7cI3UyurVr+h0Ouz7H4H9jmD5yu7Ffen1SWKG5GV 1R5+2AFkowt4t3BBU5nZ3/HttxP/o36ivqyOVgcre/zytsq+Wmifn1hVTVdTld3d0G4GNs5b9APeWvR/ G6/sv2OfHbDfBKyoZqr1lf254CVqb/VOdbz6lrpc2Z9c+AZPN7pJ8TwIIDtdyPYoXvsVb92FTkTUSyf4 VgOgFLqw7VfZdRc8EdFoe1y90LcXAKXRBW5/937AL3giorFk31jhkfBA6XSh29+k7W/cdRsBEdHS2tu3 EgBdoQv/Rcp+rVi3KRARVbtCzfDtA0DXaAOwT8l/2zcEIqK63uJbBoCu04ZgX417rLJBEBHZbxVW9m0C ABbSxjBR2a2K6zYOIupW+/rWAAD1tFFsrezZ9XWbCBGV3Y8UT1gFMDLaMCy7U2DdhkJE5fWw2tG3AAAY HW0gdv//Ob6hEFGZ2S29eeQ6gN5pM7HnEfAVTKKy+q2a5Zc5APSHNhZ7AJE9ZbBu4yGiPNk3onb3SxsA mqGNxv5McZlvPESUq4+p8X45A0DztOlsr+72TYiI2p09/2EVv3wBYPC0CR2o5vumRETt6ka1uV+uADBc 2pDs8w3H+QZFRMNvrtrNL1EAaBdtUNPV6b5hEdHgs9/2Haz8qgSAFtNmtYayO8bVbWhE1ExHKj7QCCAf bV7rqYt9MyOiZrJvPkz2yw4A8tJmtoH6uW9uRNSf7A6NU/0yA4ByaHN7trrINzsiGlvHKt4oACifNrtZ 6oe++RHRsrMPM35ATfLLCAC6Q5vfKupLqm6DJKKFT5F8q+LDjACgzXCq+pDiBlBEC7tdcR8FAKijDXKc eoPiltPU1S5R3JkRAEZKm+bW6he+iRKV3mcVz3oAgLHSJrqysq+P8ecKKq07lP1Gjc8nAEC/aFO1dlW/ V3WbL1GWzlAb+qkNAGiKNtuZ6pPqSVW3IRO1LfsQ4xvVRD+NAQCDos3X2l5x+2lqY/aG9nNqlp+yAIBh 06Y8Rb1J3azqNm+iQXWeeqHysxMA0EraqO2Dku9Xd6m6DZ2o312pdlcT/DQEAGSiDdwetf1Bxb0dqN/N Ua9TU/x0AwCUQBv76up96lZV9wOAaFnZjZX2UDxOGgC6QBv+dLWv+qWq+8FAZD2uvqa2VdwvAQC6zH4Q qOepU9RcVfeDg7rTjeoINdtPEQAAFqcfFPahyf3UhWqBqvuhQuX0oLKnpr5Y8fhoAMDY6IfIbHWIsj9f 8AYifw8pu9viq9R0P8wAAPSXfsispQ5Q56hHVN0PJWpP9syGk9TL1Ap+GAEAGCz9EFpebaeOVdcofgsx vOapC9ShaiPFfREAAO2lH1Qz1I7qo+oK9aiq+wFHY+8edbayNwebKe6HAADITz/QJqsN1D7qRPVbxRuJ ZXevsg+gHqPszwp2M65xvqwAAHSDfvhNUPYEzh3UO9Sp6jfqAVX3A7S05qu/KLsp0qeU3R9jc/UM5asE AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAEBb/N3f/T8xRM+isgEnHAAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAAEAAAAAtCAYAAAAeA21aAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC42/Ixj3wAABAZJREFUaEPtmttL VEEcx+1CkV0fjIpeIoqCLlCYUFJZBvUHWGpP0lMvvhTUQxFbIF2wtcx1V9d1yZdAfBCKkIrs9tDFoqei hHrJCkyNsItSbp/f+jtx1PW6O3Mk/MKXOWfOzHy/M+ecOTNzJm0KU5hCUqiqqkoPBoPZMMcmq6urt/n9 /jlqwx7Ky8sXhEKhYioeIXxE2AtjHrEHD82EJ2iUrFgsNk1tph41NTWrEEIv9MNlwBa/ofuCsB6ehWWc X4XXOW6F8XScd8JAZWXlSrWdPAKBwDwKvQT/OEI2iJ5U2Med3aRWhgXp1sJj5Hmp+X9Df11d3VxNMjEg voKC/rWwDVKJRsINamFckFcAz0Xkb9fyWqUOenl8wEgm/KIF2WDLWO72WBCJRObjPajlto+7XDLnkvGn FmCc6DURpqt8ykC5eVD6rO5wOLxbo0cGrZVDpl9ug4ZZ5fP5pqt8ysHnch0Sn6VOUjeNTgxaaQmJu9SY DTaotFFQ+a1QOvF2OvWlGj0UJLjnMmeUGHrGmGK2ShsHesdV+65GDQSPyiG3QcPsHvFOGAK68RvMq1Ck Uf3gHZzJhTY1Z4M+lbYKnoJM1X83oN/hQqHLnGl2JD1ASQLoN4gPnoIDGhVvgDsug0aJ1imV9QR42Kw+ muIRtbW1i4nocwyaJi2/Pi7sIfDxEfZFo9FFcnLQMWeatPp79eAp8HJZ/eTLid8xaIFX1IOn4Iu3V/1c kAa4oSfGSYsfUQ+egunyGvXTKA3Q4jZpkggWqgdPIYs66ueJfAHeDjZqiqOOxS0CP7KS9VoO3jgGTZPG 3qH6ngM/3+ErOXjuGDRNOp8C1fcUsl6gnp7KKyDrakPMmiBak7ITLHObNMwK9eApqPg+9VMq38QCl0Gj RHhSDYTgfutD4XA4vFF9eAZuxCe8yMrxwngEB7cdg6aJ+Om4qEfgid+iPvonQwIirM0H4KSYDtMA+RrV vyBCxAeXSdM8o9JWgW58KgzbhizEWl4SkyX3ZSptDWgmXhJzwFPwQA0aJ1rNJpfDBwPNEtVOvCgqkIVK jHU6Ji3wvEobBTpOH9c16mIsiXbRCNZ+jAz7OKYI1CUPnV6pE5/g7Ro9MugP9pDB5m/wivr6+lkqnzJQ 7lEoY5xu6pOr0WMDdyaLjB0wkWETfIzJ1SqfFCgrA0a03PH/HHUgGw0owNp0GcocvXSi4wTyZtCI5whl qivlTfz3uANngwSFWRsuQ/mZeZFXcSevxgy1khBUcDlpD5PnJuzR/KnZIOGGPg0h6Gw+sMWvVPAW4TXC AGEJYZTwIaGM6d1p5V1P7RaZwdBdGFkInYT3EfV6k5Rs1JINW8Wy0KE27QFxT7bJwWxPtslN4b9CWtpf q08OrPrJSeMAAAAASUVORK5CYII= 720, 21 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 ================================================ FILE: FreeHttpControl/FreeHttpWindowFunction.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using FreeHttp.HttpHelper; using FreeHttp.FiddlerHelper; using FreeHttp.MyHelper; using FreeHttp.AutoTest.ParameterizationPick; using static FreeHttp.WebService.RemoteRuleService; using FreeHttp.WebService.DataModel; using FreeHttp.WebService; using FreeHttp.AutoTest.RunTimeStaticData; /******************************************************************************* * Copyright (c) 2018 lulianqi * All rights reserved. * * 文件名称: * 内容摘要: mycllq@hotmail.com * * 历史记录: * 日 期: 20181103 创建人: lulianqi [mycllq@hotmail.com] * 描 述: 创建 * * 历史记录: * 日 期: 修改: * 描 述: *******************************************************************************/ namespace FreeHttp.FreeHttpControl { public partial class FreeHttpWindow : UserControl { #region Inner Function /// /// load history rule list /// /// RuleCollecttion private void LoadFiddlerModificHttpRuleCollection(FiddlerModificHttpRuleCollection yourRuleCollecttion) { if (yourRuleCollecttion != null) { DelRuleFromListView(lv_requestRuleList, null); DelRuleFromListView(lv_responseRuleList, null); if (yourRuleCollecttion.RequestRuleList != null) { foreach (var tempRule in yourRuleCollecttion.RequestRuleList) { //tempRule.HttpFilter = new FiddlerHttpFilter(tempRule.UriMatch); AddRuleToListView(lv_requestRuleList, tempRule, false); } } if (yourRuleCollecttion.ResponseRuleList != null) { foreach (var tempRule in yourRuleCollecttion.ResponseRuleList) { //tempRule.HttpFilter = new FiddlerHttpFilter(tempRule.UriMatch); AddRuleToListView(lv_responseRuleList, tempRule, false); } } } } #region Refresh RuleList for FiddlerResponseChangeList/FiddlerRequestChangeList /// /// Refresh RuleList by ListView(更新FiddlerChangeList规则缓存列表) /// /// ListView private void RefreshFiddlerRuleList(ListView yourRuleListView) { if (yourRuleListView == lv_requestRuleList) { RefreshFiddlerRequestChangeList(); } else if (yourRuleListView == lv_responseRuleList) { RefreshFiddlerResponseChangeList(); } else { throw new Exception("ListView is Illegal"); } //Refresh RuleInfoWindow (弹出式详情) if (nowRuleInfoWindowList != null && nowRuleInfoWindowList.Count > 0) { foreach (var infoWindow in nowRuleInfoWindowList) { if (!infoWindow.IsDisposed) { infoWindow.RefreshRuleInfo(); } } } } /// /// Refresh FiddlerRequestChange list /// private void RefreshFiddlerRequestChangeList() { List requestList = null; if (RequestRuleListView != null) { requestList = new List(); if (RequestRuleListView.Groups == null || RequestRuleListView.Groups.Count == 0) { foreach (ListViewItem tempItem in RequestRuleListView.Items) { requestList.Add((FiddlerRequestChange)tempItem.Tag); } } else { foreach (ListViewItem tempItem in RequestRuleListView.Items) { if (tempItem.Group == null) { requestList.Add((FiddlerRequestChange)tempItem.Tag); } } foreach (ListViewGroup listViewGroup in RequestRuleListView.Groups) { foreach (ListViewItem tempItem in listViewGroup.Items) { requestList.Add((FiddlerRequestChange)tempItem.Tag); } } } } FiddlerRequestChangeList = requestList; } /// /// Refresh FiddlerResponseChange list /// private void RefreshFiddlerResponseChangeList() { List responseList = null; if (ResponseRuleListView != null) { responseList = new List(); if (ResponseRuleListView.Groups == null || ResponseRuleListView.Groups.Count == 0) { foreach (ListViewItem tempItem in ResponseRuleListView.Items) { responseList.Add((FiddlerResponseChange)tempItem.Tag); } } else { foreach (ListViewItem tempItem in ResponseRuleListView.Items) { if (tempItem.Group == null) { responseList.Add((FiddlerResponseChange)tempItem.Tag); } } foreach (ListViewGroup listViewGroup in ResponseRuleListView.Groups) { foreach (ListViewItem tempItem in listViewGroup.Items) { responseList.Add((FiddlerResponseChange)tempItem.Tag); } } } } FiddlerResponseChangeList = responseList; } #endregion private void DelRuleFromListView(ListView yourListViews,ListViewItem yourItem) { if (yourItem == null) { yourListViews.Items.Clear(); } else { yourListViews.Items.Remove(yourItem); } RefreshFiddlerRuleList(yourListViews); } private void AddRuleToListView(ListView yourListViews, IFiddlerHttpTamper yourHttpTamper, bool isMark) { //TamperProtocalType tempProtocolMode; //if (!Enum.TryParse(yourHttpTamper.TamperProtocol, out tempProtocolMode)) //{ // tempProtocolMode = TamperProtocalType.Http; // //throw new Exception("unkonw protocol"); //} int tempListViewItemImageIndex = yourHttpTamper.TamperProtocol == TamperProtocalType.WebSocket ? 4 : yourHttpTamper.IsRawReplace ? 1 : 0; ListViewItem nowRuleItem = new ListViewItem(new string[] { (yourListViews.Items.Count + 1).ToString(), yourHttpTamper.HttpFilter?.GetShowTitle() ?? "" }, tempListViewItemImageIndex); nowRuleItem.Tag = yourHttpTamper; nowRuleItem.ToolTipText = yourHttpTamper.HttpFilter.ToString(); nowRuleItem.Checked = yourHttpTamper.IsEnable; yourListViews.Items.Add(nowRuleItem); AdjustRuleListViewIndex(yourListViews); RefreshFiddlerRuleList(yourListViews); if (isMark) { MarkRuleItem(nowRuleItem); PutWarn(string.Format("Add {0} {1}", yourListViews.Columns[1].Text, nowRuleItem.SubItems[0].Text)); yourListViews.EnsureVisible(nowRuleItem.Index); } } private void UpdataRuleToListView(ListViewItem yourListViewItem, IFiddlerHttpTamper yourHttpTamper, bool isMark) { yourListViewItem.Tag = yourHttpTamper; yourListViewItem.SubItems[1].Text = yourHttpTamper.HttpFilter?.GetShowTitle() ?? ""; yourListViewItem.ImageIndex = yourHttpTamper.TamperProtocol == TamperProtocalType.WebSocket ? 4 : yourHttpTamper.IsRawReplace ? 1 : 0; yourListViewItem.ToolTipText = yourHttpTamper.HttpFilter.ToString(); yourListViewItem.Checked = yourHttpTamper.IsEnable; RefreshFiddlerRuleList(yourListViewItem.ListView); if (isMark) { MarkRuleItem(yourListViewItem); PutWarn(string.Format("Updata {0} {1}", yourListViewItem.ListView.Columns[1].Text, yourListViewItem.SubItems[0].Text)); } } private void SyncEnableSateToIFiddlerHttpTamper(ListViewItem yourListViewItem, IFiddlerHttpTamper yourHttpTamper) { if (yourListViewItem != null && yourHttpTamper != null) { yourHttpTamper.IsEnable = yourListViewItem.Checked; } } private bool IsRequestReplaceRawMode { get { return !panel_requestReplace_startLine.Visible; } } private void ChangeNowRuleMode(RuleEditMode editMode,TamperProtocalType protocolMode, string mes, ListViewItem yourListViewItem, bool isSilentChange = false) { switch (editMode) { case RuleEditMode.NewRuleMode: // new rule lb_editRuleMode.Text = (mes == null ? "New Mode" : mes); pictureBox_editRuleMode.Image = FreeHttp.Resources.MyResource.add_mode; this.toolTip_forMainWindow.SetToolTip(this.pictureBox_editRuleMode, "new a rule"); if (EditListViewItem != null && !isSilentChange) { MarkRuleOutEdit(EditListViewItem); } EditListViewItem = null; pictureBox_editHttpFilter.Tag = null; pictureBox_editHttpFilter.Image = Resources.MyResource.filter_off; pb_pickRule.Tag = null; pb_pickRule.Image = Resources.MyResource.pick_off; NowEditMode = editMode; break; case RuleEditMode.EditRequsetRule: //edit request lb_editRuleMode.Text = (mes == null ? "Edit Mode" : mes); if (EditListViewItem != null && !isSilentChange) { MarkRuleOutEdit(EditListViewItem); } EditListViewItem = yourListViewItem; if (!isSilentChange) { MarkRuleInEdit(EditListViewItem); } pictureBox_editRuleMode.Image = FreeHttp.Resources.MyResource.edit_mode; this.toolTip_forMainWindow.SetToolTip(this.pictureBox_editRuleMode, "save change for your requst rule"); NowEditMode = editMode; break; case RuleEditMode.EditResponseRule: //edit response lb_editRuleMode.Text = (mes == null ? "Edit Mode" : mes); if (EditListViewItem != null && !isSilentChange) { MarkRuleOutEdit(EditListViewItem); } EditListViewItem = yourListViewItem; if(!isSilentChange) { MarkRuleInEdit(EditListViewItem); } pictureBox_editRuleMode.Image = FreeHttp.Resources.MyResource.edit_mode; this.toolTip_forMainWindow.SetToolTip(this.pictureBox_editRuleMode, "save change for your response rule"); NowEditMode = editMode; break; default: throw new Exception("get not support mode"); //break; } ChangeProtocalRuleMode(protocolMode); ClearModificInfo(); if (editMode == RuleEditMode.EditRequsetRule && (tabControl_Modific.SelectedTab == tabPage_responseModific || tabControl_Modific.SelectedTab == tabPage_responseReplace)) tabControl_Modific.SelectedTab = tabPage_requestModific; //tabControl_Modific.SelectedIndex = 0; if (editMode == RuleEditMode.EditResponseRule &&(tabControl_Modific.SelectedTab == tabPage_requestModific || tabControl_Modific.SelectedTab == tabPage_requestReplace)) tabControl_Modific.SelectedTab = tabPage_responseModific; //tabControl_Modific.SelectedIndex = 2; } private void ChangeProtocalRuleMode(TamperProtocalType protocolMode) { if (NowProtocalMode != protocolMode) { switch (protocolMode) { case TamperProtocalType.Http: groupBox_bodyModific.Text = "Body Modific"; groupBox_responseBodyModific.Text = "Body Modific"; tabPage_requestModific.Text = "Request Modific"; tabPage_responseModific.Text = "Response Modific"; //add Controls tabPage_requestModific.Controls.Add(splitContainer_requestModific); tabPage_requestModific.Controls.Add(groupBox_uriModific);//DockStyle.Top需要后加,不然会盖住住DockStyle.Fill splitContainer_requestModific.Panel2.Controls.Add(groupBox_bodyModific); tabPage_responseModific.Controls.Add(splitContainer_responseModific); splitContainer_responseModific.Panel2.Controls.Add(groupBox_responseBodyModific); groupBox_uriModific.Enabled = true; groupBox_headsModific.Enabled = true; groupBox_reponseHeadModific.Enabled = true; quickRuleToolStripMenuItem.Enabled = true; pb_protocolSwitch.SwitchState = true; tabControl_Modific.Controls.Clear(); tabControl_Modific.Controls.AddRange(new Control[] { tabPage_requestModific,tabPage_requestReplace,tabPage_responseModific ,tabPage_responseReplace}); break; case TamperProtocalType.WebSocket: groupBox_bodyModific.Text = "Payload Modific"; groupBox_responseBodyModific.Text = "Payload Modific"; tabPage_requestModific.Text = "Websocket Send Modific"; tabPage_responseModific.Text = "Websocket Receive Modific"; //Remove Controls tabPage_requestModific.Controls.Remove(groupBox_uriModific); tabPage_requestModific.Controls.Remove(splitContainer_requestModific); tabPage_requestModific.Controls.Add(groupBox_bodyModific); tabPage_responseModific.Controls.Remove(splitContainer_responseModific); tabPage_responseModific.Controls.Add(groupBox_responseBodyModific); groupBox_uriModific.Enabled = false; groupBox_headsModific.Enabled = false; groupBox_reponseHeadModific.Enabled = false; quickRuleToolStripMenuItem.Enabled = false; pb_protocolSwitch.SwitchState = false; //if (tabControl_Modific.SelectedTab == tabPage_requestReplace || tabControl_Modific.SelectedTab == tabPage_responseReplace) tabControl_Modific.SelectedTab = tabPage_requestModific;//tabControl_Modific.SelectedIndex = 0; tabControl_Modific.Controls.Clear(); tabControl_Modific.Controls.AddRange(new Control[] { tabPage_requestModific, tabPage_responseModific }); break; default: PutError("unknow RuleProtocolMode"); break; } NowProtocalMode = protocolMode; } } #region MarkControl private static void MarkControl(Control yourControl, Color yourColor, int yourShowTick) { MyGlobalHelper.markControlService.MarkControl(yourControl, yourColor, yourShowTick); } private static void MarkRuleItem(ListViewItem yourItem, Color yourColor, int yourShowTick) { MyGlobalHelper.markControlService.MarkControl(yourItem, yourColor, yourShowTick); } public static void MarkRuleItem(ListViewItem yourItem) { MarkRuleItem(yourItem, Color.PowderBlue, 5); } public static void MarkMatchRule(ListViewItem yourItem) { MarkRuleItem(yourItem, Color.Khaki, 3); } public static void MarkTipControl(Control yourControl) { MarkControl(yourControl, Color.Aquamarine, 2); } public static void MarkWarnControl(Control yourControl) { MarkControl(yourControl, Color.Plum, 2); } public ListViewItem FindListViewItemFromRule(IFiddlerHttpTamper yourRule) { ListViewItem markItem = null; if (yourRule is FiddlerRequestChange) { foreach (ListViewItem tempItem in RequestRuleListView.Items) { if (yourRule == tempItem.Tag) { markItem = tempItem; break; } } } else if (yourRule is FiddlerResponseChange) { foreach (ListViewItem tempItem in ResponseRuleListView.Items) { if (yourRule == tempItem.Tag) { markItem = tempItem; break; } } } else { throw new Exception("unknow IFiddlerHttpTamper"); } if (markItem == null) { throw new Exception("can not find ListViewItem"); } return markItem; } private void MarkRuleInEdit(ListViewItem yourItem) { MyGlobalHelper.markControlService.SetColor(yourItem, Color.Pink); MyGlobalHelper.markControlService.MarkControl(lb_editRuleMode, Color.Pink, 2); } private void MarkRuleOutEdit(ListViewItem yourItem) { MyGlobalHelper.markControlService.SetColor(yourItem, Color.Transparent); } #endregion private FiddlerUriMatch GetUriMatch() { FiddlerUriMatchMode matchMode = FiddlerUriMatchMode.AllPass; if (!Enum.TryParse(cb_macthMode.Text, out matchMode)) { throw new Exception("get error FiddlerUriMatchMode"); } if (matchMode != FiddlerUriMatchMode.AllPass && tb_urlFilter.Text == "") { return null; } return new FiddlerUriMatch(matchMode, tb_urlFilter.Text); } private FiddlerHttpFilter GetHttpFilter() { if(pictureBox_editHttpFilter.Tag==null) { return new FiddlerHttpFilter(GetUriMatch()); } else { FiddlerHttpFilter returnFiddlerHttpFilter = pictureBox_editHttpFilter.Tag as FiddlerHttpFilter; if(returnFiddlerHttpFilter==null) { throw new Exception("get error in FiddlerHttpFilter"); } returnFiddlerHttpFilter.UriMatch = GetUriMatch(); return returnFiddlerHttpFilter; } } private int GetResponseLatency() { return lbl_ResponseLatency.GetLatency(); } private List GetParameterPick() { if(pb_pickRule.Tag!=null && pb_pickRule.Tag is List) { return ((List)pb_pickRule.Tag).Count > 0 ? (List)pb_pickRule.Tag : null; } return null; } private void SetUriMatch(FiddlerUriMatch fiddlerUriMatch) { if (fiddlerUriMatch != null) { cb_macthMode.Text = fiddlerUriMatch.MatchMode.ToString(); tb_urlFilter.Text = string.IsNullOrEmpty(fiddlerUriMatch.MatchUri) ? "" : fiddlerUriMatch.MatchUri; } } private void SetHttpMatch(FiddlerHttpFilter fiddlerHttpFilter) { if (fiddlerHttpFilter != null) { SetUriMatch(fiddlerHttpFilter.UriMatch); pictureBox_editHttpFilter.Tag = fiddlerHttpFilter; if(fiddlerHttpFilter.HeadMatch!=null || fiddlerHttpFilter.BodyMatch!=null) { pictureBox_editHttpFilter.Image = Resources.MyResource.filter_on; } else { pictureBox_editHttpFilter.Image = Resources.MyResource.filter_off; } } } private void SetHttpParameterPick(List yourParameterPickList) { pb_pickRule.Tag = yourParameterPickList; if (yourParameterPickList != null && yourParameterPickList.Count > 0) { pb_pickRule.Image = Resources.MyResource.pick_on; } else { pb_pickRule.Image = Resources.MyResource.pick_off; } } private void ChangeSetResponseLatencyMode(int yourLatency) { if (yourLatency < 0) { lbl_ResponseLatency.Text = ""; lbl_ResponseLatency.Visible = false; pb_responseLatency.Image = Resources.MyResource.naozhong_off; pb_responseLatency.Visible = true; isSetResponseLatencyEable = false; } else if (yourLatency == 0) { lbl_ResponseLatency.Text = ""; lbl_ResponseLatency.Visible = false; pb_responseLatency.Image = Resources.MyResource.naozhong_on; pb_responseLatency.Visible = true; isSetResponseLatencyEable = true; } else { lbl_ResponseLatency.SetLatency(yourLatency); if (lbl_ResponseLatency.Width <= pb_responseLatency.Width) { lbl_ResponseLatency.Location = new Point(pb_responseLatency.Location.X, lbl_ResponseLatency.Location.Y); } else { lbl_ResponseLatency.Location = new Point(pb_responseLatency.Location.X - (lbl_ResponseLatency.Width - pb_responseLatency.Width), lbl_ResponseLatency.Location.Y); } lbl_ResponseLatency.Visible = true; pb_responseLatency.Visible = false; isSetResponseLatencyEable = true; } } private void SetResponseLatency(int yourLatency) { ChangeSetResponseLatencyMode(yourLatency); } private FiddlerRequestChange GetRequestModificInfo() { FiddlerRequestChange requsetChange = new FiddlerRequestChange(); requsetChange.TamperProtocol = NowProtocalMode; requsetChange.HttpRawRequest = null; //requsetChange.ActuatorStaticDataController = new FiddlerActuatorStaticDataCollectionController(StaticDataCollection); requsetChange.HttpFilter = GetHttpFilter(); requsetChange.ParameterPickList = GetParameterPick(); requsetChange.UriModific = new ParameterContentModific(tb_requestModific_uriModificKey.Text, tb_requestModific_uriModificValue.Text); if (requestRemoveHeads.ListDataView.Items.Count > 0) { requsetChange.HeadDelList = new List(); foreach (ListViewItem tempRequestRemoveHead in requestRemoveHeads.ListDataView.Items) { requsetChange.HeadDelList.Add(tempRequestRemoveHead.Text); } } if (requestAddHeads.ListDataView.Items.Count > 0) { requsetChange.HeadAddList = new List(); foreach (ListViewItem tempRequestAddHead in requestAddHeads.ListDataView.Items) { requsetChange.HeadAddList.Add(tempRequestAddHead.Text); } } requsetChange.BodyModific = new ParameterContentModific(tb_requestModific_body.Text, rtb_requestModific_body.Text); requsetChange.SetHasParameter(pb_parameterSwitch.SwitchState, StaticDataCollection); return requsetChange; } private FiddlerRequestChange GetRequestReplaceInfo() { FiddlerRequestChange requsetReplace = new FiddlerRequestChange(); requsetReplace.TamperProtocol = NowProtocalMode; requsetReplace.HttpFilter = GetHttpFilter(); requsetReplace.ParameterPickList = GetParameterPick(); if (IsRequestReplaceRawMode) { requsetReplace.HttpRawRequest = ParameterHttpRequest.GetHttpRequest(rtb_requestRaw.Text.Replace("\n", "\r\n"), pb_parameterSwitch.SwitchState, StaticDataCollection); } else { requsetReplace.HttpRawRequest = new ParameterHttpRequest(); //requsetReplace.HttpRawRequest.RequestMethod = cb_editRequestMethod.Text; //requsetReplace.HttpRawRequest.RequestUri = tb_requestReplace_uri.Text; //requsetReplace.HttpRawRequest.RequestVersions = cb_editRequestEdition.Text; //Set RequestLine will updata RequestMethod/RequestUri/RequestVersions requsetReplace.HttpRawRequest.RequestLine=string.Format("{0} {1} {2}", cb_editRequestMethod.Text, tb_requestReplace_uri.Text, cb_editRequestEdition.Text); StringBuilder requestSb = new StringBuilder(requsetReplace.HttpRawRequest.RequestLine); requestSb.Append("\r\n"); requsetReplace.HttpRawRequest.RequestHeads = new List>(); if (elv_requsetReplace.ListDataView.Items.Count > 0) { foreach (ListViewItem item in elv_requsetReplace.ListDataView.Items) { string headStr = item.Text; if (headStr.Contains(": ")) { string key = headStr.Remove(headStr.IndexOf(": ")); string value = headStr.Substring(headStr.IndexOf(": ") + 2); requsetReplace.HttpRawRequest.RequestHeads.Add(new MyKeyValuePair(key, value)); } else { throw new Exception(string.Format("find eror head with {0}", headStr)); } requestSb.AppendLine(headStr); } requestSb.Append("\r\n"); } string tempRequstBody = rtb_requsetReplace_body.Text; requestSb.Append(tempRequstBody); //HttpEntity not need end with new line if (tempRequstBody.StartsWith("<>")) { string tempPath = tempRequstBody.Remove(0, 21); if (File.Exists(tempPath)) { using (FileStream fileStream = new FileStream(tempPath, FileMode.Open, FileAccess.Read, FileShare.Read)) { if (fileStream.Length > int.MaxValue) { throw new Exception(string.Format("your file path in ResponseEntity is too large with {0}", tempPath)); } requsetReplace.HttpRawRequest.RequestEntity = new byte[fileStream.Length]; fileStream.Position = 0; fileStream.Read(requsetReplace.HttpRawRequest.RequestEntity, 0, requsetReplace.HttpRawRequest.RequestEntity.Length); } } else { throw new Exception(string.Format("your file path in ResponseEntity is not Exists with {0}", tempPath)); } } else { requsetReplace.HttpRawRequest.RequestEntity = Encoding.UTF8.GetBytes(tempRequstBody); } requsetReplace.HttpRawRequest.ParameterizationContent = new AutoTest.ParameterizationContent.CaseParameterizationContent(requestSb.ToString(), pb_parameterSwitch.SwitchState); requsetReplace.HttpRawRequest.OriginSting = requsetReplace.HttpRawRequest.ParameterizationContent.GetTargetContentData(); requsetReplace.SetHasParameter(pb_parameterSwitch.SwitchState, StaticDataCollection); } if (antoContentLengthToolStripMenuItem.Checked) { requsetReplace.HttpRawRequest.SetAutoContentLength(); } return requsetReplace; } private FiddlerResponseChange GetResponseModificInfo() { FiddlerResponseChange responseChange = new FiddlerResponseChange(); responseChange.TamperProtocol = NowProtocalMode; responseChange.HttpRawResponse = null; //responseChange.ActuatorStaticDataController = new FiddlerActuatorStaticDataCollectionController(StaticDataCollection); responseChange.HttpFilter = GetHttpFilter(); responseChange.ParameterPickList = GetParameterPick(); responseChange.ResponseLatency = GetResponseLatency(); if (responseRemoveHeads.ListDataView.Items.Count > 0) { responseChange.HeadDelList = new List(); foreach (ListViewItem tempRequestRemoveHead in responseRemoveHeads.ListDataView.Items) { responseChange.HeadDelList.Add(tempRequestRemoveHead.Text); } } if (responseAddHeads.ListDataView.Items.Count > 0) { responseChange.HeadAddList = new List(); foreach (ListViewItem tempRequestAddHead in responseAddHeads.ListDataView.Items) { responseChange.HeadAddList.Add(tempRequestAddHead.Text); } } responseChange.BodyModific = new ParameterContentModific(tb_responseModific_body.Text, rtb_respenseModific_body.Text); responseChange.BodyModific = new ParameterContentModific(tb_responseModific_body.Text, rtb_respenseModific_body.Text); responseChange.SetHasParameter(pb_parameterSwitch.SwitchState, StaticDataCollection); return responseChange; } private FiddlerResponseChange GetResponseReplaceInfo() { FiddlerResponseChange responseChange = new FiddlerResponseChange(); responseChange.TamperProtocol = NowProtocalMode; //responseChange.ActuatorStaticDataController = new FiddlerActuatorStaticDataCollectionController(StaticDataCollection); responseChange.HttpFilter = GetHttpFilter(); responseChange.ParameterPickList = GetParameterPick(); responseChange.ResponseLatency = GetResponseLatency(); responseChange.HttpRawResponse = rawResponseEdit.GetHttpResponse(StaticDataCollection); responseChange.IsIsDirectRespons = rawResponseEdit.IsDirectRespons; responseChange.SetHasParameter(pb_parameterSwitch.SwitchState, StaticDataCollection); return responseChange; } private void ClearModificInfo() { cb_macthMode.Text = ""; tb_urlFilter.Text = ""; tb_requestModific_uriModificKey.Text = ""; tb_requestModific_uriModificValue.Text = ""; tb_requestModific_body.Text = ""; cb_editRequestMethod.Text = ""; tb_requestReplace_uri.Text = ""; cb_editRequestEdition.Text = ""; tb_responseModific_body.Text = ""; rawResponseEdit.ClearInfo(); requestRemoveHeads.ListDataView.Items.Clear(); requestAddHeads.ListDataView.Items.Clear(); elv_requsetReplace.ListDataView.Items.Clear(); responseRemoveHeads.ListDataView.Items.Clear(); responseAddHeads.ListDataView.Items.Clear(); rtb_requestModific_body.Clear(); rtb_requsetReplace_body.Clear(); rtb_respenseModific_body.Clear(); rtb_requestRaw.Clear(); antoContentLengthToolStripMenuItem.Checked = true; pb_parameterSwitch.SwitchState = false; //tabControl_Modific_Selecting(this.tabControl_Modific, null); ChangeSetResponseLatencyMode((tabControl_Modific.SelectedTab == tabPage_requestModific || tabControl_Modific.SelectedTab == tabPage_requestReplace) ? -1 : 0); } private void SetRequestModificInfo(FiddlerRequestChange fiddlerRequsetChange) { SetHttpMatch(fiddlerRequsetChange.HttpFilter); SetHttpParameterPick(fiddlerRequsetChange.ParameterPickList); pb_parameterSwitch.SwitchState = fiddlerRequsetChange.IsHasParameter; if (fiddlerRequsetChange.HttpRawRequest == null) { tabControl_Modific.SelectedTab = tabPage_requestModific; if (fiddlerRequsetChange.UriModific != null && fiddlerRequsetChange.UriModific.ModificMode != ContentModificMode.NoChange) { tb_requestModific_uriModificKey.Text = fiddlerRequsetChange.UriModific.ParameterTargetKey.ToString(); tb_requestModific_uriModificValue.Text = fiddlerRequsetChange.UriModific.ParameterReplaceContent.ToString(); } if (fiddlerRequsetChange.HeadDelList != null) { foreach (string tempHead in fiddlerRequsetChange.HeadDelList) { requestRemoveHeads.ListDataView.Items.Add(tempHead); } } if (fiddlerRequsetChange.HeadAddList != null) { foreach (string tempHead in fiddlerRequsetChange.HeadAddList) { requestAddHeads.ListDataView.Items.Add(tempHead); } } if (fiddlerRequsetChange.BodyModific != null && fiddlerRequsetChange.BodyModific.ModificMode != ContentModificMode.NoChange) { tb_requestModific_body.Text = fiddlerRequsetChange.BodyModific.ParameterTargetKey.ToString(); if (!string.IsNullOrEmpty(fiddlerRequsetChange.BodyModific.ParameterReplaceContent.ToString())) { rtb_requestModific_body.AppendText(fiddlerRequsetChange.BodyModific.ParameterReplaceContent.ToString()); } } } else { tabControl_Modific.SelectedTab = tabPage_requestReplace; if (IsRequestReplaceRawMode) { pb_requestReplace_changeMode_Click(null, null); } cb_editRequestMethod.Text = fiddlerRequsetChange.HttpRawRequest.RequestMethod; tb_requestReplace_uri.Text = fiddlerRequsetChange.HttpRawRequest.RequestUri; cb_editRequestEdition.Text = fiddlerRequsetChange.HttpRawRequest.RequestVersions; if (fiddlerRequsetChange.HttpRawRequest.RequestHeads != null) { foreach (MyKeyValuePair tempHead in fiddlerRequsetChange.HttpRawRequest.RequestHeads) { elv_requsetReplace.ListDataView.Items.Add(string.Format("{0}: {1}", tempHead.Key, tempHead.Value)); } } if (fiddlerRequsetChange.HttpRawRequest.RequestEntity != null && fiddlerRequsetChange.HttpRawRequest.RequestEntity.Length > 0) { //if (fiddlerRequsetChange.HttpRawRequest.ParameterizationContent.hasParameter && fiddlerRequsetChange.HttpRawRequest.OriginSting != null) //{ // HttpRequest tempRequest = HttpRequest.GetHttpRequest(fiddlerRequsetChange.HttpRawRequest.OriginSting); // if(tempRequest.RequestEntity!=null) // { // rtb_requsetReplace_body.AppendText(Encoding.UTF8.GetString(tempRequest.RequestEntity)); // } //} //rtb_requsetReplace_body.AppendText(Encoding.UTF8.GetString(fiddlerRequsetChange.HttpRawRequest.RequestEntity));//文件实体无法还原原始值 Encoding tempEncoding = Encoding.GetEncoding("utf-8", new EncoderExceptionFallback(), new DecoderExceptionFallback()); string tempStr = null; try { tempStr = tempEncoding.GetString(fiddlerRequsetChange.HttpRawRequest.RequestEntity); } catch(ArgumentException ) { String tempOriginSting = fiddlerRequsetChange.HttpRawRequest.OriginSting; if (!string.IsNullOrEmpty(tempOriginSting)) { int startIndex = tempOriginSting.IndexOf("\r\n\r\n"); if (startIndex > 0) //can not is 0 (must have request line) { tempStr = tempOriginSting.Remove(0, startIndex+4); } } } catch(Exception ex) { PutError(string.Format("analysis request replace rule error {0}", ex.Message)); } finally { tempStr = tempStr ?? "analysis request replace rule error in request body , pleace reedit"; } rtb_requsetReplace_body.AppendText(tempStr); } if (fiddlerRequsetChange.HttpRawRequest.OriginSting != null) { rtb_requestRaw.AppendText(fiddlerRequsetChange.HttpRawRequest.OriginSting); } // if fiddlerRequsetChange is RawRequest ,just use HttpRawRequest hasParameter pb_parameterSwitch.SwitchState = fiddlerRequsetChange.HttpRawRequest.ParameterizationContent.hasParameter; } } private void SetResponseModificInfo(FiddlerResponseChange fiddlerResponseChange) { SetHttpMatch(fiddlerResponseChange.HttpFilter); SetResponseLatency(fiddlerResponseChange.ResponseLatency); SetHttpParameterPick(fiddlerResponseChange.ParameterPickList); pb_parameterSwitch.SwitchState = fiddlerResponseChange.IsHasParameter; if (fiddlerResponseChange.HttpRawResponse == null) { tabControl_Modific.SelectedTab = tabPage_responseModific; if (fiddlerResponseChange.HeadDelList != null) { foreach (string tempHead in fiddlerResponseChange.HeadDelList) { responseRemoveHeads.ListDataView.Items.Add(tempHead); } } if (fiddlerResponseChange.HeadAddList != null) { foreach (string tempHead in fiddlerResponseChange.HeadAddList) { responseAddHeads.ListDataView.Items.Add(tempHead); } } if (fiddlerResponseChange.BodyModific != null && fiddlerResponseChange.BodyModific.ModificMode != ContentModificMode.NoChange) { tb_responseModific_body.Text = fiddlerResponseChange.BodyModific.ParameterTargetKey.ToString(); if (!string.IsNullOrEmpty(fiddlerResponseChange.BodyModific.ParameterReplaceContent.ToString())) { rtb_respenseModific_body.AppendText(fiddlerResponseChange.BodyModific.ParameterReplaceContent.ToString()); } } } else { tabControl_Modific.SelectedTab = tabPage_responseReplace; rawResponseEdit.IsDirectRespons = fiddlerResponseChange.IsIsDirectRespons; rawResponseEdit.IsUseParameterData = fiddlerResponseChange.HttpRawResponse.ParameterizationContent.hasParameter; if (fiddlerResponseChange.HttpRawResponse.OriginSting != null) { rawResponseEdit.SetText(fiddlerResponseChange.HttpRawResponse.OriginSting); } pb_parameterSwitch.SwitchState = fiddlerResponseChange.HttpRawResponse.ParameterizationContent.hasParameter; } } private void AdjustRuleListViewIndex(ListView ruleListView) { if (ruleListView.Items.Count > 0) { for (int i = 0; i < ruleListView.Items.Count; i++) { ruleListView.Items[i].SubItems[0].Text = (i + 1).ToString(); } } } private GetSessionEventArgs GetNowHttpSession(bool isNeedBody = false) { if (OnGetSessionEventArgs != null) { GetSessionEventArgs sessionEventArgs = new GetSessionEventArgs(isNeedBody); this.OnGetSessionEventArgs(this, sessionEventArgs); return sessionEventArgs; } return new GetSessionEventArgs(false) { IsGetSuccess = false }; } #endregion #region Public Function public void ReplaceRuleStorage(RuleDetails ruleDetails) { if (ruleDetails != null) { InitializeConfigInfo(ruleDetails.ModificHttpRuleCollection, ModificSettingInfo, ruleDetails.StaticDataCollection , ruleDetails.RuleGroup); LoadFiddlerModificHttpRuleCollection(fiddlerModificHttpRuleCollection); if (StaticDataCollection == null) { StaticDataCollection = new ActuatorStaticDataCollection(true); } if (ModificRuleGroup == null) { ModificRuleGroup = new FiddlerRuleGroup(lv_requestRuleList, lv_responseRuleList); } else { ModificRuleGroup.SetRuleGroupListView(lv_requestRuleList, lv_responseRuleList); } //恢复分组,如果没有分组RecoverGroup可以清除ListView里的历史Group ModificRuleGroup.RecoverGroup(); //重置Uid,需要在组信息恢复后重置 foreach (FiddlerRequestChange fiddlerRequestChange in FiddlerRequestChangeList) { fiddlerRequestChange.RuleUid = null; fiddlerRequestChange.RuleUid = $"[Replace]{fiddlerRequestChange.RuleUid}"; } foreach (FiddlerResponseChange fiddlerResponseChange in FiddlerResponseChangeList) { fiddlerResponseChange.RuleUid = null; fiddlerResponseChange.RuleUid = $"[Replace]{fiddlerResponseChange.RuleUid}"; } ModificRuleGroup.ReflushGroupDc(); PutInfo($"[ReplaceRule]Add {ruleDetails.ModificHttpRuleCollection.RequestRuleList.Count} request rule succeed "); PutInfo($"[ReplaceRule]Add {ruleDetails.ModificHttpRuleCollection.ResponseRuleList.Count} response rule succeed "); PutInfo($"[ReplaceRule]Add {ruleDetails.StaticDataCollection.Count} static parameter data succeed "); } } public void MergeRuleStorage(RuleDetails ruleDetails) { if (ruleDetails != null) { string tempRequestGruopName = null; string tempResponseGruopName = null; if (ruleDetails.ModificHttpRuleCollection?.RequestRuleList!=null) { List tempRemoteRequestGroup = new List(); foreach (FiddlerRequestChange tempFiddlerRequestChange in ruleDetails.ModificHttpRuleCollection.RequestRuleList) { //重置RuleUid tempFiddlerRequestChange.RuleUid = null; tempFiddlerRequestChange.RuleUid = $"[Remote]{tempFiddlerRequestChange.RuleUid}"; tempRemoteRequestGroup.Add(tempFiddlerRequestChange.RuleUid); } if (tempRemoteRequestGroup.Count > 0) { tempRequestGruopName = string.IsNullOrEmpty(ruleDetails.Remark) ? "Remote" : ruleDetails.Remark; tempRequestGruopName = $"[{tempRequestGruopName}]-{(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000)}"; ModificRuleGroup.RequestGroupDictionary.Add(tempRequestGruopName, tempRemoteRequestGroup); PutInfo($"[MergeRule]Add Group [{tempRequestGruopName}] ,the new request rules will to be included here"); } FiddlerRequestChangeList.AddRange(ruleDetails.ModificHttpRuleCollection.RequestRuleList); PutInfo($"[MergeRule]Add {ruleDetails.ModificHttpRuleCollection.RequestRuleList.Count} request rule succeed "); } if (ruleDetails.ModificHttpRuleCollection?.ResponseRuleList != null) { List tempRemoteResponseGroup = new List(); foreach (FiddlerResponseChange tempFiddleResponseRuleListChange in ruleDetails.ModificHttpRuleCollection.ResponseRuleList) { //重置RuleUid tempFiddleResponseRuleListChange.RuleUid = null; tempFiddleResponseRuleListChange.RuleUid = $"[Remote]{tempFiddleResponseRuleListChange.RuleUid}"; tempRemoteResponseGroup.Add(tempFiddleResponseRuleListChange.RuleUid); } if (tempRemoteResponseGroup.Count > 0) { tempResponseGruopName = string.IsNullOrEmpty(ruleDetails.Remark) ? "Remote" : ruleDetails.Remark; tempResponseGruopName = $"[{tempResponseGruopName}]-{(DateTime.Now.ToUniversalTime().Ticks - 621355968000000000)}"; ModificRuleGroup.ResponseGroupDictionary.Add(tempResponseGruopName, tempRemoteResponseGroup); PutInfo($"[MergeRule]Add Group [{tempResponseGruopName}] ,the new response rules will to be included here"); } FiddlerResponseChangeList.AddRange(ruleDetails.ModificHttpRuleCollection.ResponseRuleList); PutInfo($"[MergeRule]Add {ruleDetails.ModificHttpRuleCollection.ResponseRuleList.Count} response rule succeed "); } if(ruleDetails.StaticDataCollection!=null) { foreach (KeyValuePair tempAddData in ruleDetails.StaticDataCollection) { //PutInfo($"Key:{x.Key} Value:{x.Value.ToString()} - {x.Value.DataCurrent()}"); if(StaticDataCollection.IsHaveSameKey(tempAddData.Key)) { if(MessageBox.Show($"find same static data type:{tempAddData.Value.RunTimeStaticDataType} key: {tempAddData.Key}\r\ndo you want replace this static key","find same key",MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes) { if (!StaticDataCollection.RemoveStaticData(tempAddData.Key, false)) { _ = RemoteLogService.ReportLogAsync($"[MergeRuleStorage]RemoveStaticData error with {tempAddData.Key}", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); PutError($"RemoveStaticData error with {tempAddData.Key}"); continue; } } else { continue; } } if (StaticDataCollection.AddStaticData(tempAddData.Key, tempAddData.Value)) { PutInfo($"[MergeRule]AddStaticData succeed with {tempAddData.Key}-{tempAddData.Value.RunTimeStaticDataType}"); } else { _ = RemoteLogService.ReportLogAsync($"[MergeRuleStorage]AddStaticDataKey error with {tempAddData.Key}", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); PutError($"AddStaticDataKey error with {tempAddData.Key}"); } } } //重新加载rules InitializeConfigInfo(new FiddlerModificHttpRuleCollection(FiddlerRequestChangeList , FiddlerResponseChangeList), ModificSettingInfo, StaticDataCollection, ModificRuleGroup); LoadFiddlerModificHttpRuleCollection(fiddlerModificHttpRuleCollection); ModificRuleGroup.RecoverGroup(); //标记新添加的rule if(!string.IsNullOrEmpty(tempRequestGruopName)) { foreach(ListViewGroup group in lv_requestRuleList.Groups) { if(group.Header== tempRequestGruopName) { foreach (ListViewItem tempListViewItem in group.Items) { MarkRuleItem(tempListViewItem); } if(group.Items.Count>0) { lv_requestRuleList.EnsureVisible(group.Items[0].Index); } break; } } } if (!string.IsNullOrEmpty(tempResponseGruopName)) { foreach (ListViewGroup group in lv_responseRuleList.Groups) { if (group.Header == tempResponseGruopName) { foreach (ListViewItem tempListViewItem in group.Items) { MarkRuleItem(tempListViewItem); } if (group.Items.Count > 0) { lv_responseRuleList.EnsureVisible(group.Items[0].Index); } break; } } } } else { MyGlobalHelper.PutGlobalMessage(null, new MyGlobalHelper.GlobalMessageEventArgs(true, "MergeRuleStorage fill that ruleDetails is null")); _ = RemoteLogService.ReportLogAsync("MergeRuleStorage fill that ruleDetails is null", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); } } public void CloseEditRtb() { tbe_RequestBodyModific.CloseRichTextBox(); tbe_ResponseBodyModific.CloseRichTextBox(); tbe_urlFilter.CloseRichTextBox(); tbe_RequestBodyModific.Visible = tb_requestModific_body.Focused; tbe_ResponseBodyModific.Visible = tb_responseModific_body.Focused; tbe_urlFilter.Visible = tb_urlFilter.Focused; } public void SetModificSession(Fiddler.Session session) { ChangeNowRuleMode(RuleEditMode.NewRuleMode, session.BitFlags.HasFlag(Fiddler.SessionFlags.IsWebSocketTunnel)? TamperProtocalType.WebSocket: TamperProtocalType.Http, null, null); tb_urlFilter.Text = session.fullUrl; cb_macthMode.SelectedIndex = 2; pictureBox_editHttpFilter.Tag = GetHttpFilter(); if (NowProtocalMode == TamperProtocalType.Http) { if (tabControl_Modific.SelectedTab == tabPage_requestModific) { tabControl_Modific.SelectedTab = tabPage_requestReplace; } else if (tabControl_Modific.SelectedTab == tabPage_responseModific) { tabControl_Modific.SelectedTab = tabPage_responseReplace; } } else if (NowProtocalMode == TamperProtocalType.WebSocket) { if (tabControl_Modific.SelectedTab == tabPage_requestReplace || tabControl_Modific.SelectedTab == tabPage_responseReplace) tabControl_Modific.SelectedTab = tabPage_requestModific; } //Request Replace tb_requestReplace_uri.Text = session.fullUrl; cb_editRequestEdition.Text = ((Fiddler.HTTPHeaders)(session.oRequest.headers)).HTTPVersion; cb_editRequestMethod.Text = session.RequestMethod; elv_requsetReplace.ListDataView.Items.Clear(); foreach (var tempHead in session.RequestHeaders) { elv_requsetReplace.ListDataView.Items.Add(String.Format("{0}: {1}", tempHead.Name, tempHead.Value)); } rtb_requsetReplace_body.Clear(); if (session.requestBodyBytes != null) { if (session.requestBodyBytes.Length > 0) { //Encoding tempRequestEncoding = session.GetRequestBodyEncoding() == null ? Encoding.UTF8 : session.GetRequestBodyEncoding(); //rtb_requsetReplace_body.Text = tempRequestEncoding.GetString(session.requestBodyBytes); rtb_requsetReplace_body.Text = session.GetRequestBodyAsString(); } } MemoryStream tempRequestStream = new MemoryStream(); if (session.WriteRequestToStream(false, true, true, tempRequestStream)) { byte[] tempRequestBytes = new byte[tempRequestStream.Length]; tempRequestBytes = tempRequestStream.ToArray(); //tempRequestStream.ReadAsync(tempRequestBytes, 0, (int)tempRequestStream.Length); //tempRequestStream.Position=0; //tempRequestStream.Read(tempRequestBytes, 0, (int)tempRequestStream.Length); rtb_requestRaw.Clear(); rtb_requestRaw.Text = Encoding.UTF8.GetString(tempRequestBytes); } else { rtb_requestRaw.Clear(); rtb_requestRaw.Text = "read RequestStream fail"; } tempRequestStream.Close(); //Response Replace MemoryStream tempReponseStream = new MemoryStream(); if (session.WriteResponseToStream(tempReponseStream, false)) { byte[] tempResponseBytes = new byte[tempReponseStream.Length]; tempResponseBytes = tempReponseStream.ToArray(); rawResponseEdit.SetText(Encoding.UTF8.GetString(tempResponseBytes)); } else { rawResponseEdit.SetText("read ResponseStream fail"); } tempReponseStream.Close(); } private void SetClientCookies(string yourCookieString, Func, bool> operateCookies) { if (string.IsNullOrEmpty(yourCookieString)) { MessageBox.Show("can not find any cookies in you selected session \r\nselect session again", "select session again"); if (Fiddler.FiddlerApplication.UI.lvSessions.SelectedItems != null && Fiddler.FiddlerApplication.UI.lvSessions.SelectedItems.Count > 0) { MarkRuleItem(Fiddler.FiddlerApplication.UI.lvSessions.SelectedItems[0], Color.Plum, 2); } else { MarkWarnControl(Fiddler.FiddlerApplication.UI.lvSessions); } return; } string[] tempCS = yourCookieString.Split(';'); if (tempCS.Length > 0) { List> tempCL = null; tempCL = new List>(); foreach (string eachCookies in tempCS) { string cookieKey = null; string cookieVaule = null; int splitIndex = eachCookies.IndexOf('='); if (splitIndex < 0) { PutWarn(string.Format("find illegal cookie with {0}", eachCookies)); continue; } cookieKey = eachCookies.Remove(splitIndex).Trim(); cookieVaule = eachCookies.Substring(splitIndex + 1); tempCL.Add(new KeyValuePair(cookieKey, cookieVaule)); } foreach(var formatedCooke in tempCL) { //responseAddHeads.ListDataView.Items.Add(string.Format("Set-Cookie: {0}={1};{2}", formatedCooke.Key, formatedCooke.Value,"Path=/" )); if(!operateCookies(formatedCooke)) { PutError(String.Format("SetClientCookies fail with {0}:{1}", formatedCooke.Key, formatedCooke.Value)); } } } else { MessageBox.Show("the cookies in selected session is illegal\r\nplease check again"); } } public void SetClientAddCookies(string yourCookieString) { SetClientCookies(yourCookieString, new Func, bool>((kvCookie) => { responseAddHeads.ListDataView.Items.Add(string.Format("Set-Cookie: {0}={1};{2}", kvCookie.Key, kvCookie.Value, "Path=/")); return true; })); } public void SetClientDelCookies(string yourCookieString) { string tempAttibute="Max-Age=1;Path=/"; if (!string.IsNullOrEmpty(yourCookieString)) { SetVaule f = new SetVaule("Set Attibute", "you can add attibute for the set-cookie head ,like Domain=www.yourhost.com", tempAttibute, new Func((string checkValue) => { return checkValue.Contains("Max-Age")?null:""; })); f.OnSetValue += new EventHandler((obj, tag) => { tempAttibute = tag.SetValue; }); f.ShowDialog(); } SetClientCookies(yourCookieString, new Func, bool>((kvCookie) => { responseAddHeads.ListDataView.Items.Add(string.Format("Set-Cookie: {0}=delete by FreeHttp; {1}", kvCookie.Key, tempAttibute)); return true; })); } public void ShowOwnerWindow(string name,string info) { ShowTextForm f = new ShowTextForm(name,info); f.Owner = Fiddler.FiddlerApplication.UI; f.StartPosition = FormStartPosition.CenterParent; f.Show(); } public void PutInfo(string info) { rtb_MesInfo.Select(rtb_MesInfo.TextLength, 0); rtb_MesInfo.SelectionColor = Color.Black; rtb_MesInfo.AppendText(string.Format("【{0}】:{1}", DateTime.Now.ToString(), info)); rtb_MesInfo.AppendText("\r\n"); rtb_MesInfo.SelectionColor = Color.Black; } public void PutWarn(string info) { rtb_MesInfo.Select(rtb_MesInfo.TextLength, 0); rtb_MesInfo.SelectionColor = Color.Indigo; rtb_MesInfo.AppendText(string.Format("【{0}】:{1}", DateTime.Now.ToString(), info)); rtb_MesInfo.AppendText("\r\n"); rtb_MesInfo.SelectionColor = Color.Black; } public void PutError(string info) { rtb_MesInfo.Select(rtb_MesInfo.TextLength, 0); rtb_MesInfo.SelectionColor = Color.Red; rtb_MesInfo.AppendText(string.Format("【{0}】:{1}", DateTime.Now.ToString(), info)); rtb_MesInfo.AppendText("\r\n"); rtb_MesInfo.SelectionColor = Color.Black; } #endregion } } ================================================ FILE: FreeHttpControl/GetRemoteRuleWindow.Designer.cs ================================================  namespace FreeHttp.FreeHttpControl { partial class GetRemoteRuleWindow { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(GetRemoteRuleWindow)); this.lb_info_1 = new System.Windows.Forms.Label(); this.bt_getRule = new System.Windows.Forms.Button(); this.bt_merge = new System.Windows.Forms.Button(); this.lb_info_2 = new System.Windows.Forms.Label(); this.lv_remote_responseRuleList = new FreeHttp.FreeHttpControl.MyListView(); this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader_responseRule = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.lv_remote_requestRuleList = new FreeHttp.FreeHttpControl.MyListView(); this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader_requstRule = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.watermakTextBox_ruleToken = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.lb_info_LocalRule = new System.Windows.Forms.Label(); this.lb_info_SharedRule = new System.Windows.Forms.Label(); this.lb_info_RemoteRule = new System.Windows.Forms.Label(); this.lv_shareRuleList = new System.Windows.Forms.ListView(); this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.contextMenuStrip_shareRuleList = new System.Windows.Forms.ContextMenuStrip(this.components); this.copyThisTokenToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.deleteThisTokenToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.bt_replace = new System.Windows.Forms.Button(); this.contextMenuStrip_shareRuleList.SuspendLayout(); this.SuspendLayout(); // // lb_info_1 // this.lb_info_1.AutoSize = true; this.lb_info_1.Location = new System.Drawing.Point(13, 38); this.lb_info_1.Name = "lb_info_1"; this.lb_info_1.Size = new System.Drawing.Size(113, 12); this.lb_info_1.TabIndex = 12; this.lb_info_1.Text = "remote rule token:"; // // bt_getRule // this.bt_getRule.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.bt_getRule.Location = new System.Drawing.Point(544, 34); this.bt_getRule.Name = "bt_getRule"; this.bt_getRule.Size = new System.Drawing.Size(75, 23); this.bt_getRule.TabIndex = 13; this.bt_getRule.Text = "Get Rule"; this.bt_getRule.UseVisualStyleBackColor = true; this.bt_getRule.Click += new System.EventHandler(this.bt_getRule_Click); // // bt_merge // this.bt_merge.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.bt_merge.Location = new System.Drawing.Point(488, 516); this.bt_merge.Name = "bt_merge"; this.bt_merge.Size = new System.Drawing.Size(131, 23); this.bt_merge.TabIndex = 16; this.bt_merge.Text = "Merge Remote Rule"; this.bt_merge.UseVisualStyleBackColor = true; this.bt_merge.Click += new System.EventHandler(this.bt_merge_Click); // // lb_info_2 // this.lb_info_2.AutoSize = true; this.lb_info_2.Location = new System.Drawing.Point(5, 521); this.lb_info_2.Name = "lb_info_2"; this.lb_info_2.Size = new System.Drawing.Size(0, 12); this.lb_info_2.TabIndex = 17; // // lv_remote_responseRuleList // this.lv_remote_responseRuleList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeader3, this.columnHeader_responseRule}); this.lv_remote_responseRuleList.FullRowSelect = true; this.lv_remote_responseRuleList.HideSelection = false; this.lv_remote_responseRuleList.Location = new System.Drawing.Point(2, 293); this.lv_remote_responseRuleList.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.lv_remote_responseRuleList.Name = "lv_remote_responseRuleList"; this.lv_remote_responseRuleList.ShowItemToolTips = true; this.lv_remote_responseRuleList.Size = new System.Drawing.Size(626, 220); this.lv_remote_responseRuleList.TabIndex = 15; this.lv_remote_responseRuleList.UseCompatibleStateImageBehavior = false; this.lv_remote_responseRuleList.View = System.Windows.Forms.View.Details; this.lv_remote_responseRuleList.DoubleClick += new System.EventHandler(this.lv_remote_ruleList_MouseDoubleClick); // // columnHeader3 // this.columnHeader3.Text = "ID"; this.columnHeader3.Width = 54; // // columnHeader_responseRule // this.columnHeader_responseRule.Text = "Response Rule"; this.columnHeader_responseRule.Width = 563; // // lv_remote_requestRuleList // this.lv_remote_requestRuleList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeader1, this.columnHeader_requstRule}); this.lv_remote_requestRuleList.Cursor = System.Windows.Forms.Cursors.Default; this.lv_remote_requestRuleList.FullRowSelect = true; this.lv_remote_requestRuleList.HideSelection = false; this.lv_remote_requestRuleList.Location = new System.Drawing.Point(2, 72); this.lv_remote_requestRuleList.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.lv_remote_requestRuleList.Name = "lv_remote_requestRuleList"; this.lv_remote_requestRuleList.ShowItemToolTips = true; this.lv_remote_requestRuleList.Size = new System.Drawing.Size(626, 220); this.lv_remote_requestRuleList.TabIndex = 14; this.lv_remote_requestRuleList.UseCompatibleStateImageBehavior = false; this.lv_remote_requestRuleList.View = System.Windows.Forms.View.Details; this.lv_remote_requestRuleList.DoubleClick += new System.EventHandler(this.lv_remote_ruleList_MouseDoubleClick); // // columnHeader1 // this.columnHeader1.Text = "ID"; this.columnHeader1.Width = 54; // // columnHeader_requstRule // this.columnHeader_requstRule.Text = "Request Rule"; this.columnHeader_requstRule.Width = 562; // // watermakTextBox_ruleToken // this.watermakTextBox_ruleToken.Location = new System.Drawing.Point(132, 35); this.watermakTextBox_ruleToken.Name = "watermakTextBox_ruleToken"; this.watermakTextBox_ruleToken.Size = new System.Drawing.Size(404, 21); this.watermakTextBox_ruleToken.TabIndex = 11; this.watermakTextBox_ruleToken.WatermarkText = "input your token"; // // lb_info_LocalRule // this.lb_info_LocalRule.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(194)))), ((int)(((byte)(217)))), ((int)(((byte)(247))))); this.lb_info_LocalRule.Cursor = System.Windows.Forms.Cursors.Hand; this.lb_info_LocalRule.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lb_info_LocalRule.ForeColor = System.Drawing.Color.DarkGray; this.lb_info_LocalRule.Location = new System.Drawing.Point(372, 9); this.lb_info_LocalRule.Name = "lb_info_LocalRule"; this.lb_info_LocalRule.Size = new System.Drawing.Size(100, 15); this.lb_info_LocalRule.TabIndex = 22; this.lb_info_LocalRule.Text = "LocalRule"; this.lb_info_LocalRule.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.lb_info_LocalRule.Click += new System.EventHandler(this.lb_info_showType_Click); this.lb_info_LocalRule.MouseLeave += new System.EventHandler(this.lb_info_MouseLeave); this.lb_info_LocalRule.MouseMove += new System.Windows.Forms.MouseEventHandler(this.lb_info_MouseMove); // // lb_info_SharedRule // this.lb_info_SharedRule.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(194)))), ((int)(((byte)(217)))), ((int)(((byte)(247))))); this.lb_info_SharedRule.Cursor = System.Windows.Forms.Cursors.Hand; this.lb_info_SharedRule.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lb_info_SharedRule.ForeColor = System.Drawing.Color.DarkGray; this.lb_info_SharedRule.Location = new System.Drawing.Point(272, 9); this.lb_info_SharedRule.Name = "lb_info_SharedRule"; this.lb_info_SharedRule.Size = new System.Drawing.Size(100, 15); this.lb_info_SharedRule.TabIndex = 21; this.lb_info_SharedRule.Text = "SharedRule"; this.lb_info_SharedRule.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.lb_info_SharedRule.Click += new System.EventHandler(this.lb_info_showType_Click); this.lb_info_SharedRule.MouseLeave += new System.EventHandler(this.lb_info_MouseLeave); this.lb_info_SharedRule.MouseMove += new System.Windows.Forms.MouseEventHandler(this.lb_info_MouseMove); // // lb_info_RemoteRule // this.lb_info_RemoteRule.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(194)))), ((int)(((byte)(217)))), ((int)(((byte)(247))))); this.lb_info_RemoteRule.Cursor = System.Windows.Forms.Cursors.Hand; this.lb_info_RemoteRule.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lb_info_RemoteRule.ForeColor = System.Drawing.Color.SaddleBrown; this.lb_info_RemoteRule.Location = new System.Drawing.Point(172, 9); this.lb_info_RemoteRule.Name = "lb_info_RemoteRule"; this.lb_info_RemoteRule.Size = new System.Drawing.Size(100, 15); this.lb_info_RemoteRule.TabIndex = 20; this.lb_info_RemoteRule.Text = "RemoteRule"; this.lb_info_RemoteRule.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.lb_info_RemoteRule.Click += new System.EventHandler(this.lb_info_showType_Click); this.lb_info_RemoteRule.MouseLeave += new System.EventHandler(this.lb_info_MouseLeave); this.lb_info_RemoteRule.MouseMove += new System.Windows.Forms.MouseEventHandler(this.lb_info_MouseMove); // // lv_shareRuleList // this.lv_shareRuleList.BackColor = System.Drawing.Color.Azure; this.lv_shareRuleList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeader2, this.columnHeader4}); this.lv_shareRuleList.ContextMenuStrip = this.contextMenuStrip_shareRuleList; this.lv_shareRuleList.FullRowSelect = true; this.lv_shareRuleList.HideSelection = false; this.lv_shareRuleList.Location = new System.Drawing.Point(2, 32); this.lv_shareRuleList.Name = "lv_shareRuleList"; this.lv_shareRuleList.ShowItemToolTips = true; this.lv_shareRuleList.Size = new System.Drawing.Size(230, 481); this.lv_shareRuleList.TabIndex = 23; this.lv_shareRuleList.UseCompatibleStateImageBehavior = false; this.lv_shareRuleList.View = System.Windows.Forms.View.Details; this.lv_shareRuleList.Visible = false; this.lv_shareRuleList.DoubleClick += new System.EventHandler(this.lv_shareRuleList_DoubleClick); // // columnHeader2 // this.columnHeader2.Text = "Share Token"; this.columnHeader2.Width = 110; // // columnHeader4 // this.columnHeader4.Text = "Remark"; this.columnHeader4.Width = 115; // // contextMenuStrip_shareRuleList // this.contextMenuStrip_shareRuleList.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.copyThisTokenToolStripMenuItem, this.deleteThisTokenToolStripMenuItem}); this.contextMenuStrip_shareRuleList.Name = "contextMenuStrip_shareRuleList"; this.contextMenuStrip_shareRuleList.Size = new System.Drawing.Size(211, 48); // // copyThisTokenToolStripMenuItem // this.copyThisTokenToolStripMenuItem.Image = global::FreeHttp.Properties.Resources.copy_value; this.copyThisTokenToolStripMenuItem.Name = "copyThisTokenToolStripMenuItem"; this.copyThisTokenToolStripMenuItem.Size = new System.Drawing.Size(210, 22); this.copyThisTokenToolStripMenuItem.Text = "Copy this share token"; this.copyThisTokenToolStripMenuItem.Click += new System.EventHandler(this.copyThisTokenToolStripMenuItem_Click); // // deleteThisTokenToolStripMenuItem // this.deleteThisTokenToolStripMenuItem.Image = global::FreeHttp.Properties.Resources.delete_value; this.deleteThisTokenToolStripMenuItem.Name = "deleteThisTokenToolStripMenuItem"; this.deleteThisTokenToolStripMenuItem.Size = new System.Drawing.Size(210, 22); this.deleteThisTokenToolStripMenuItem.Text = "Delete this share token"; this.deleteThisTokenToolStripMenuItem.Click += new System.EventHandler(this.deleteThisTokenToolStripMenuItem_Click); // // bt_replace // this.bt_replace.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.bt_replace.Location = new System.Drawing.Point(354, 516); this.bt_replace.Name = "bt_replace"; this.bt_replace.Size = new System.Drawing.Size(131, 23); this.bt_replace.TabIndex = 24; this.bt_replace.Text = "Replace Local Rule"; this.bt_replace.UseVisualStyleBackColor = true; this.bt_replace.Click += new System.EventHandler(this.bt_replace_Click); // // GetRemoteRuleWindow // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(630, 544); this.Controls.Add(this.bt_replace); this.Controls.Add(this.lv_shareRuleList); this.Controls.Add(this.lb_info_LocalRule); this.Controls.Add(this.lb_info_SharedRule); this.Controls.Add(this.lb_info_RemoteRule); this.Controls.Add(this.lb_info_2); this.Controls.Add(this.bt_merge); this.Controls.Add(this.lv_remote_responseRuleList); this.Controls.Add(this.lv_remote_requestRuleList); this.Controls.Add(this.bt_getRule); this.Controls.Add(this.lb_info_1); this.Controls.Add(this.watermakTextBox_ruleToken); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.IsShowHideBox = false; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "GetRemoteRuleWindow"; this.WindowName = ""; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.GetRemoteRuleWindow_FormClosing); this.Load += new System.EventHandler(this.GetRemoteRuleWindow_Load); this.Controls.SetChildIndex(this.watermakTextBox_ruleToken, 0); this.Controls.SetChildIndex(this.lb_info_1, 0); this.Controls.SetChildIndex(this.bt_getRule, 0); this.Controls.SetChildIndex(this.lv_remote_requestRuleList, 0); this.Controls.SetChildIndex(this.lv_remote_responseRuleList, 0); this.Controls.SetChildIndex(this.bt_merge, 0); this.Controls.SetChildIndex(this.lb_info_2, 0); this.Controls.SetChildIndex(this.lb_info_RemoteRule, 0); this.Controls.SetChildIndex(this.lb_info_SharedRule, 0); this.Controls.SetChildIndex(this.lb_info_LocalRule, 0); this.Controls.SetChildIndex(this.lv_shareRuleList, 0); this.Controls.SetChildIndex(this.bt_replace, 0); this.contextMenuStrip_shareRuleList.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label lb_info_1; private WatermakTextBox watermakTextBox_ruleToken; private System.Windows.Forms.Button bt_getRule; private MyListView lv_remote_responseRuleList; private System.Windows.Forms.ColumnHeader columnHeader3; private System.Windows.Forms.ColumnHeader columnHeader_responseRule; private MyListView lv_remote_requestRuleList; private System.Windows.Forms.ColumnHeader columnHeader1; private System.Windows.Forms.ColumnHeader columnHeader_requstRule; private System.Windows.Forms.Button bt_merge; private System.Windows.Forms.Label lb_info_2; private System.Windows.Forms.Label lb_info_LocalRule; private System.Windows.Forms.Label lb_info_SharedRule; private System.Windows.Forms.Label lb_info_RemoteRule; private System.Windows.Forms.ListView lv_shareRuleList; private System.Windows.Forms.ColumnHeader columnHeader2; private System.Windows.Forms.ColumnHeader columnHeader4; private System.Windows.Forms.ContextMenuStrip contextMenuStrip_shareRuleList; private System.Windows.Forms.ToolStripMenuItem copyThisTokenToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem deleteThisTokenToolStripMenuItem; private System.Windows.Forms.Button bt_replace; } } ================================================ FILE: FreeHttpControl/GetRemoteRuleWindow.cs ================================================ using FreeHttp.AutoTest.RunTimeStaticData; using FreeHttp.FiddlerHelper; using FreeHttp.FreeHttpControl.ControlHelper; using FreeHttp.WebService; using FreeHttp.WebService.DataModel; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static FreeHttp.WebService.RemoteRuleService; namespace FreeHttp.FreeHttpControl { public partial class GetRemoteRuleWindow : MyBaseInfoWindow { public enum ShowRuleCollectionType { RemoteRule = 0, SharedRule = 1, LocalRule = 2 } FreeHttpWindow mainWindow; ShareRuleService shareRuleService; RuleInfoWindow myListViewCBallon; RuleDetails localRuleDetails; RuleDetails nowRuleDetails; LoadWindowService loadWindowService; private ShowRuleCollectionType nowShowType = ShowRuleCollectionType.RemoteRule; private Point lv_requestRuleOriginLocation = new Point(2, 72); private Point lv_responseRuleOriginLocation = new Point(2, 293); private int lv_requestRuleOriginHeight = 220; private int lv_requestRuleOriginWidth = 626; public GetRemoteRuleWindow(FreeHttpWindow freeHttpWindow , ShowRuleCollectionType expectType= ShowRuleCollectionType.RemoteRule) { InitializeComponent(); nowShowType = expectType; mainWindow = freeHttpWindow; lv_remote_requestRuleList.SmallImageList = mainWindow.imageList_forTab; lv_remote_responseRuleList.SmallImageList = mainWindow.imageList_forTab; loadWindowService = new LoadWindowService(); } public void GotoPrvateRule(string ruleToken) { ShowInfoChange(ShowRuleCollectionType.SharedRule); LoadShareRuleSummary(shareRuleService.NowShareRuleSummary); foreach(ListViewItem item in lv_shareRuleList.Items) { if(item.SubItems[0].Text == ruleToken) { item.Selected = true; } } lv_shareRuleList_DoubleClick(null, null); } private void SaveShareRule() { List nowFiddlerRequestChangeRuleList = new List(); List nowFiddlerResponseChangeRuleList = new List(); ActuatorStaticDataCollection nowStaticDataCollection = new ActuatorStaticDataCollection(); // new WebService.RuleReportService().UploadRulesAsync(FiddlerRequestChangeRuleList, FiddlerResponseChangeRuleList , StaticDataCollection).Wait(); if (lv_remote_requestRuleList.CheckedItems!=null && lv_remote_requestRuleList.CheckedItems.Count>0) { foreach(ListViewItem requestItem in lv_remote_requestRuleList.CheckedItems) { if(!(requestItem.Tag is FiddlerRequestChange)) { MessageBox.Show("data error"); _ = RemoteLogService.ReportLogAsync("requestItem.Tag is not FiddlerRequestChange", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); return; } nowFiddlerRequestChangeRuleList.Add(requestItem.Tag as FiddlerRequestChange); } } if (lv_remote_responseRuleList.CheckedItems != null && lv_remote_responseRuleList.CheckedItems.Count > 0) { foreach (ListViewItem reponseItem in lv_remote_responseRuleList.CheckedItems) { if (!(reponseItem.Tag is FiddlerResponseChange)) { MessageBox.Show("data error"); _ = RemoteLogService.ReportLogAsync("requestItem.Tag is not FiddlerRequestChange", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); return; } nowFiddlerResponseChangeRuleList.Add(reponseItem.Tag as FiddlerResponseChange); } } if(nowFiddlerRequestChangeRuleList.Count==0 && nowFiddlerResponseChangeRuleList.Count==0) { MessageBox.Show("Please check the rules you want to share","stop"); MyHelper.MyGlobalHelper.markControlService.MarkControl(lv_remote_requestRuleList, System.Drawing.Color.Pink, 2); MyHelper.MyGlobalHelper.markControlService.MarkControl(lv_remote_responseRuleList, System.Drawing.Color.Pink, 2); return; } shareRuleService.NowSaveRuleDetails = new RuleDetails() { ModificHttpRuleCollection = new FiddlerModificHttpRuleCollection(nowFiddlerRequestChangeRuleList, nowFiddlerResponseChangeRuleList), StaticDataCollection = localRuleDetails.StaticDataCollection }; FreeHttp.FreeHttpControl.SaveShareRule saveShareRuleWindow = new SaveShareRule(shareRuleService); saveShareRuleWindow.Owner = this; saveShareRuleWindow.StartPosition = FormStartPosition.CenterParent; saveShareRuleWindow.ShowDialog(); return; } private void AddRuleToListView(ListView yourListViews, IFiddlerHttpTamper yourHttpTamper) { int tempListViewItemImageIndex = yourHttpTamper.TamperProtocol == TamperProtocalType.WebSocket ? 4 : yourHttpTamper.IsRawReplace ? 1 : 0; ListViewItem nowRuleItem = new ListViewItem(new string[] { (yourListViews.Items.Count + 1).ToString(), yourHttpTamper.HttpFilter?.GetShowTitle() ?? "" }, tempListViewItemImageIndex); nowRuleItem.Tag = yourHttpTamper; nowRuleItem.ToolTipText = yourHttpTamper.HttpFilter.ToString(); //nowRuleItem.Checked = yourHttpTamper.IsEnable; yourListViews.Items.Add(nowRuleItem); } private void ClearRemoteRule() { if (myListViewCBallon != null) { myListViewCBallon.Close(); } lv_remote_requestRuleList.Items.Clear(); lv_remote_responseRuleList.Items.Clear(); lb_info_2.Text = ""; nowRuleDetails = null; } private void GetRemoteRuleWindow_Load(object sender, EventArgs e) { watermakTextBox_ruleToken.AutoCompleteMode = AutoCompleteMode.SuggestAppend; watermakTextBox_ruleToken.AutoCompleteSource = AutoCompleteSource.CustomSource; lv_requestRuleOriginLocation = lv_remote_requestRuleList.Location; lv_requestRuleOriginHeight = lv_remote_requestRuleList.Height; localRuleDetails = new RuleDetails() { ModificHttpRuleCollection = mainWindow.ModificHttpRuleCollection, StaticDataCollection = mainWindow.StaticDataCollection }; ShowInfoChange(nowShowType); shareRuleService = new ShareRuleService(WebService.UserComputerInfo.GetFreeHttpUser()); //_ = shareRuleService.GetShareRuleSummaryAsync(); shareRuleService.GetShareRuleSummaryAsync().ContinueWith((rs)=> LoadShareRuleSummary(rs.Result)); } private void ShowInfoChange(ShowRuleCollectionType showParameter) { ClearRemoteRule(); switch (showParameter) { case ShowRuleCollectionType.RemoteRule: nowShowType = ShowRuleCollectionType.RemoteRule; lb_info_RemoteRule.ForeColor = Color.SaddleBrown; lb_info_SharedRule.ForeColor = lb_info_LocalRule.ForeColor = Color.DarkGray; lb_info_RemoteRule.BackColor = Color.LavenderBlush; lb_info_SharedRule.BackColor = lb_info_LocalRule.BackColor = Color.FromArgb(194, 217, 247); lb_info_1.Text = "remote rule token:"; lb_info_1.Visible = true; watermakTextBox_ruleToken.Visible = true; bt_getRule.Visible = true; lv_shareRuleList.Visible = false; lv_remote_requestRuleList.Location = lv_requestRuleOriginLocation; lv_remote_requestRuleList.Height = lv_requestRuleOriginHeight; lv_remote_requestRuleList.Width = lv_requestRuleOriginWidth; lv_remote_responseRuleList.Location = lv_responseRuleOriginLocation; lv_remote_responseRuleList.Width = lv_requestRuleOriginWidth; lv_remote_requestRuleList.CheckBoxes = false; lv_remote_responseRuleList.CheckBoxes = false; ClearShowShareTakenItemBackColor(); bt_merge.Text = "Merge Remote Rule"; bt_replace.Visible = true; break; case ShowRuleCollectionType.SharedRule: nowShowType = ShowRuleCollectionType.SharedRule; lb_info_SharedRule.ForeColor = Color.SaddleBrown; lb_info_RemoteRule.ForeColor = lb_info_LocalRule.ForeColor = Color.DarkGray; lb_info_SharedRule.BackColor = Color.LavenderBlush; lb_info_RemoteRule.BackColor = lb_info_LocalRule.BackColor = Color.FromArgb(194, 217, 247); lb_info_1.Visible = false; watermakTextBox_ruleToken.Visible = false; bt_getRule.Visible = true; lv_shareRuleList.Visible = true; lv_remote_requestRuleList.Location = new Point(lv_requestRuleOriginLocation.X+ lv_shareRuleList.Width, lv_requestRuleOriginLocation.Y - 40); lv_remote_requestRuleList.Height = lv_requestRuleOriginHeight + 40; lv_remote_requestRuleList.Width = lv_requestRuleOriginWidth - lv_shareRuleList.Width; lv_remote_responseRuleList.Location = new Point(lv_responseRuleOriginLocation.X + lv_shareRuleList.Width, lv_responseRuleOriginLocation.Y); lv_remote_responseRuleList.Width = lv_requestRuleOriginWidth - lv_shareRuleList.Width; lv_remote_requestRuleList.CheckBoxes = false; lv_remote_responseRuleList.CheckBoxes = false; bt_merge.Text = "Merge Share Rule"; bt_replace.Visible = true; break; case ShowRuleCollectionType.LocalRule: nowShowType = ShowRuleCollectionType.LocalRule; lb_info_LocalRule.ForeColor = Color.SaddleBrown; lb_info_RemoteRule.ForeColor = lb_info_SharedRule.ForeColor = Color.DarkGray; lb_info_LocalRule.BackColor = Color.LavenderBlush; lb_info_RemoteRule.BackColor = lb_info_SharedRule.BackColor = Color.FromArgb(194, 217, 247); lb_info_1.Visible = false; watermakTextBox_ruleToken.Visible = false; bt_getRule.Visible = false; lv_shareRuleList.Visible = false; lv_remote_requestRuleList.Location = new Point(lv_requestRuleOriginLocation.X, lv_requestRuleOriginLocation.Y - 40); lv_remote_requestRuleList.Height = lv_requestRuleOriginHeight + 40; lv_remote_requestRuleList.Width = lv_requestRuleOriginWidth; lv_remote_responseRuleList.Location = lv_responseRuleOriginLocation; lv_remote_responseRuleList.Width = lv_requestRuleOriginWidth; lv_remote_requestRuleList.CheckBoxes = true; lv_remote_responseRuleList.CheckBoxes = true; ClearShowShareTakenItemBackColor(); bt_merge.Text = "Save Share Rule"; bt_replace.Visible = false; //action LoadRules(localRuleDetails); break; default: MessageBox.Show("nonsupport static data type"); break; } } private void LoadShareRuleSummary(ShareRuleSummary shareRuleSummary) { if(shareRuleSummary==null) { _ = RemoteLogService.ReportLogAsync("LoadShareRuleSummary fial with null data", RemoteLogService.RemoteLogOperation.RemoteRule, RemoteLogService.RemoteLogType.Error); return; } if (shareRuleSummary.ShareRuleList?.Count > 0) { var autoCompleteStringCollection = new AutoCompleteStringCollection(); foreach (var tempShareToken in shareRuleSummary.ShareRuleList) { autoCompleteStringCollection.Add(tempShareToken.ShowWholeTag); this.Invoke(new Action(() => watermakTextBox_ruleToken.AutoCompleteCustomSource.Add(tempShareToken.ShowWholeTag))); } } if (shareRuleSummary.PrivateRuleList?.Count > 0) { lv_shareRuleList.Items.Clear(); this.Invoke(new Action(() => FreeHttpControl.MyControlHelper.SetControlFreeze(lv_shareRuleList))); foreach (var tempShareToken in shareRuleSummary.PrivateRuleList) { lv_shareRuleList.Items.Add(new ListViewItem(new string[] {tempShareToken.Token,tempShareToken.Remark })); } this.Invoke(new Action(() => FreeHttpControl.MyControlHelper.SetControlUnfreeze(lv_shareRuleList))); } } private void LoadRules(RuleDetails ruleDetails) { if(ruleDetails==null || (ruleDetails.ModificHttpRuleCollection?.RequestRuleList?.Count<1 && ruleDetails.ModificHttpRuleCollection?.ResponseRuleList?.Count < 1)) { lb_info_2.Text = "your local rule is empty"; return; } foreach (var tempRule in ruleDetails.ModificHttpRuleCollection?.RequestRuleList?? new List()) { AddRuleToListView(lv_remote_requestRuleList, tempRule); } foreach (var tempRule in ruleDetails.ModificHttpRuleCollection?.ResponseRuleList??new List()) { AddRuleToListView(lv_remote_responseRuleList, tempRule); } lb_info_2.Text = string.Format("Get RequestRule:{0} ; ResponseRule:{1} ; StaticData:{2}", ruleDetails.ModificHttpRuleCollection.RequestRuleList.Count, ruleDetails.ModificHttpRuleCollection.ResponseRuleList.Count, ruleDetails.StaticDataCollection?.Count ?? 0); nowRuleDetails = ruleDetails; } private RuleDetails GetRuleDetailsFromToken(string shareToken) { RuleDetails ruleDetails = null; try { System.Threading.Tasks.Task ruleTask = System.Threading.Tasks.Task.Run(new Func(() => { //return WebService.RemoteRuleService.GetRemoteRuleAsync(watermakTextBox_ruleToken.Text).GetAwaiter().GetResult(); return shareRuleService.GetShareRuleDetailAsync(shareToken).GetAwaiter().GetResult(); })); ruleDetails = ruleTask.GetAwaiter().GetResult(); if (ruleDetails == null) { MessageBox.Show("your rule token is not permitted", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); } else if (ruleDetails.ModificHttpRuleCollection == null || ((ruleDetails.ModificHttpRuleCollection.RequestRuleList == null || ruleDetails.ModificHttpRuleCollection.RequestRuleList.Count == 0) && (ruleDetails.ModificHttpRuleCollection.ResponseRuleList == null || ruleDetails.ModificHttpRuleCollection.ResponseRuleList.Count == 0))) { MessageBox.Show("can not find any rule in your storage spaces", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); ruleDetails = null; } } catch (Exception ex) { _ = RemoteLogService.ReportLogAsync(ex.ToString(), RemoteLogService.RemoteLogOperation.RemoteRule, RemoteLogService.RemoteLogType.Error); ruleDetails = null; MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } return ruleDetails; } private void lb_info_showType_Click(object sender, EventArgs e) { ShowRuleCollectionType hereType; if (Enum.TryParse(((Label)sender).Text, out hereType)) { ShowInfoChange(hereType); } } private void bt_getRule_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(watermakTextBox_ruleToken.Text)) { MessageBox.Show("just input your rule token", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); MyHelper.MyGlobalHelper.markControlService.MarkControl(watermakTextBox_ruleToken, System.Drawing.Color.Pink, 2); return; } string shareToken = watermakTextBox_ruleToken.Text.Contains('[') ? watermakTextBox_ruleToken.Text.Substring(0, watermakTextBox_ruleToken.Text.IndexOf('[')).Trim() : watermakTextBox_ruleToken.Text.Trim(); ClearRemoteRule(); loadWindowService.StartLoad(this,true); RuleDetails ruleDetails = GetRuleDetailsFromToken(shareToken); loadWindowService.StopLoad(); if (ruleDetails == null) { MyHelper.MyGlobalHelper.markControlService.MarkControl(watermakTextBox_ruleToken, System.Drawing.Color.Pink, 2); return; } LoadRules(ruleDetails); } private ListViewItem nowShowShareTakenListViewItem = null; private void ClearShowShareTakenItemBackColor() { if (nowShowShareTakenListViewItem != null) { MyHelper.MyGlobalHelper.markControlService.SetColor(nowShowShareTakenListViewItem, Color.Azure); nowShowShareTakenListViewItem = null; } } private void lv_shareRuleList_DoubleClick(object sender, EventArgs e) { ListViewItem tempListViewItem = lv_shareRuleList.SelectedItems[0]; loadWindowService.StartLoad(this, true); RuleDetails ruleDetails = GetRuleDetailsFromToken(tempListViewItem.SubItems[0].Text); loadWindowService.StopLoad(); if(ruleDetails==null) { MessageBox.Show("get share taken fail", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error); MyHelper.MyGlobalHelper.markControlService.MarkControl(watermakTextBox_ruleToken, System.Drawing.Color.Pink, 2); return; } ClearRemoteRule(); ClearShowShareTakenItemBackColor(); MyHelper.MyGlobalHelper.markControlService.SetColor(tempListViewItem, Color.Pink); nowShowShareTakenListViewItem = tempListViewItem; LoadRules(ruleDetails); } private void copyThisTokenToolStripMenuItem_Click(object sender, EventArgs e) { if(lv_shareRuleList.SelectedItems?.Count>0) { Clipboard.SetText(lv_shareRuleList.SelectedItems[0].SubItems[0].Text, TextDataFormat.Text); MessageBox.Show($"{lv_shareRuleList.SelectedItems[0].SubItems[0].Text} has been copied to the clipboard", "copied"); } } private async void deleteThisTokenToolStripMenuItem_Click(object sender, EventArgs e) { if (lv_shareRuleList.SelectedItems?.Count > 0) { ListViewItem tempListViewItem = lv_shareRuleList.SelectedItems[0]; if (await shareRuleService.DeleteShareRuleDetailAsync(tempListViewItem.SubItems[0].Text)) { MessageBox.Show("Delete has succeed", "succeed",MessageBoxButtons.OK,MessageBoxIcon.Information); lv_shareRuleList.Items.Remove(tempListViewItem); if(nowShowShareTakenListViewItem== tempListViewItem) { ClearRemoteRule(); nowShowShareTakenListViewItem = null; } } else { MessageBox.Show("delete share taken fail","Fail",MessageBoxButtons.OK,MessageBoxIcon.Error); } } else { MessageBox.Show("Please choose the item that your want delete first"); } } [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)] private void lv_remote_ruleList_MouseDoubleClick(object sender, EventArgs e) { if ((sender as ListView)?.SelectedItems.Count == 0) return; ListViewItem nowListViewItem = (sender as ListView)?.SelectedItems[0]; if (nowListViewItem == null) return; Point myPosition = new Point(nowListViewItem.Bounds.X, nowListViewItem.Bounds.Y); myPosition = nowListViewItem.ListView.PointToScreen(myPosition); myPosition = this.PointToClient(myPosition); myPosition.Offset(30, 10); if(myListViewCBallon!=null) { myListViewCBallon.Close(); } myListViewCBallon = new RuleInfoWindow(nowListViewItem); myListViewCBallon.Owner = this; myListViewCBallon.HasShadow = true; myListViewCBallon.setBalloonPosition(this, myPosition, new Size(0, 0)); myListViewCBallon.Show(); myListViewCBallon.UpdateBalloonPosition(myPosition); } private void GetRemoteRuleWindow_FormClosing(object sender, FormClosingEventArgs e) { if (myListViewCBallon != null) { myListViewCBallon.Close(); } } private void bt_merge_Click(object sender, EventArgs e) { switch(nowShowType) { case ShowRuleCollectionType.RemoteRule: if (nowRuleDetails == null) { MyHelper.MyGlobalHelper.markControlService.MarkControl(watermakTextBox_ruleToken, System.Drawing.Color.Pink, 2); MessageBox.Show("please get remore rule first", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } mainWindow.MergeRuleStorage(nowRuleDetails); MessageBox.Show("Complete the merge rule", "Complete", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); break; case ShowRuleCollectionType.SharedRule: if (nowRuleDetails == null) { MyHelper.MyGlobalHelper.markControlService.MarkControl(watermakTextBox_ruleToken, System.Drawing.Color.Pink, 2); MessageBox.Show("please select and load share rule first\r\ndouble click to loading rule", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } mainWindow.MergeRuleStorage(nowRuleDetails); MessageBox.Show("Complete the merge rule", "Complete", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); break; case ShowRuleCollectionType.LocalRule: SaveShareRule(); break; default: MessageBox.Show("Unknow state", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); break; } } private void bt_replace_Click(object sender, EventArgs e) { switch (nowShowType) { case ShowRuleCollectionType.RemoteRule: case ShowRuleCollectionType.SharedRule: if (nowRuleDetails == null) { MyHelper.MyGlobalHelper.markControlService.MarkControl(watermakTextBox_ruleToken, System.Drawing.Color.Pink, 2); MessageBox.Show("please select share rule first", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } if (MessageBox.Show("This operation will removes all local rules and replace with the remote rules \r\nwhether to confirm ", "Confirm", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) { mainWindow.ReplaceRuleStorage(nowRuleDetails); MessageBox.Show("Complete the replacement rule", "Complete", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } break; default: MessageBox.Show("Unknow state", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); break; } } #region public event helper private void lb_info_MouseMove(object sender, MouseEventArgs e) { ((Label)sender).BackColor = Color.LavenderBlush; } private void lb_info_MouseLeave(object sender, EventArgs e) { if(sender== lb_info_RemoteRule && nowShowType== ShowRuleCollectionType.RemoteRule || sender == lb_info_SharedRule && nowShowType == ShowRuleCollectionType.SharedRule|| sender == lb_info_LocalRule && nowShowType == ShowRuleCollectionType.LocalRule) { return; } ((Label)sender).BackColor = Color.FromArgb(194, 217, 247); } //pictureBox change for all public void pictureBox_MouseMove(object sender, MouseEventArgs e) { ((PictureBox)sender).BackColor = Color.Honeydew; } //pictureBox change for all public void pictureBox_MouseLeave(object sender, EventArgs e) { ((PictureBox)sender).BackColor = Color.Transparent; } #endregion } } ================================================ FILE: FreeHttpControl/GetRemoteRuleWindow.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 17, 17 AAABAAEAICAAAAAAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbEgIAXD8HAIFY CgCUZQsAlGULAJRlCwCUZQsAlGULAJRlCwCUZQsAlGULAJRlCwCUZQsAlGULAJRlCwCUZQsAlGULAJRl CwCUZQsAlGULAI1hCwBpSAgANSQEAAMCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARDAEAiF0LANaT ESzblhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/v4IPpUgxBgAAAAAAAAAAAAAAAAAAAAAAFQ4BALd+ DwDblhL/25YS/9uWEv/blhL/25YR/9uWEf/blhH/25YR/9uWEf/blhH/25YR/9uWEf/blhH/25YR/9uW Ef/blhH/25YR/9uWEf/blhH/25YR/9uWEf/blhL/25YS/9uWEv/blhL/2pUR/2VFCDIAAAAAAAAAAAIB AACudw4A25YS/9uWEv/ZlBH/iF0L/zknBP8UDwFgCAYALwgGAC8IBgAvCAYALwgGAC8IBgAvCAYALwgG AC8IBgAvCAYALwgGAC8IBgAvCAYALwgGAC8IBgAvCAYALxsSAjFCLQWyoG0N/9uWEv/blhL/2pUR/2VF B1MAAAAAUTcGANuWEv/blhL/2ZUR/0MuBf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWT0HB9mV Ef/blhL/1pMR/yYaAwCocw0A25YS/9uWEv99VQr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAdE8JANuWEv/blhL/hFoK/9iUEQnblhL/25YS/zQjBP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAFM5BgCmcg0AVjsHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAUDQEA05AR/9uWEv/HiBD/25YS6duWEv/blhL/CgYAQAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAt34PANuWEv+/gw//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACveA4d25YS/9uWEf/ZlRLh25YS/9uWEv8yIgRMAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcEAADblRER25YS/7R7Dv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKRwDQDblhL/25YR/6l0DgDblhL/25YS/4Na Cv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWDwHANuWEv/blhL/gVgK/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBAAAy4sQFNuWEv/SkBH/VToGANuW Ev/blhL/2JQR/0EtBQAAAAAAAAAAAAAAAAAAAAAAAAAAACcbAwDMixAA25YS/9iUEf8wIgP/AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE42BgDblhL025YS/59t DP8EAwAAs3sOvNuWEv/blhL/15MR/4VbCwAxIQMAHRQCACocAwBwTAkAz40RANuWEv/blhL/hlsK/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhFwIAx4gQANuW Ev/blRL/PysF/wAAAAAZEQIAvIEP/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/5Rl DP8EAgBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCgEAWT0HAMyM EQDblhL/25YS/5hoDP8BAAAJAAAAAAAAAAAPCgEAi18L89iUEf/blhL/25YS/9uWEv/blhL/25YS/8+N Ef9zTwn/BAIAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkGAACIXQsAwYQPANOQ ESzblhL/25YS/9uWEv+hbg3/CQYAnwAAAAAAAAAAAAAAAAAAAAAAAAAAGxICAFs+B/aGWwr/25YR/9uW Ev+YaAz/DAgBhQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATDQGANuW EvvblhL/25YS/9uWEv/alRH/iF0L/wkGAKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoS AgDblhHm25YS/6RxDf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABgQQcA25YS/9uWEv+5fg7/e1QK/yweA/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAMWHELHblhL/0o8Q/woHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAJdnDADblhL/25UR/zAhBOMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAjWELANuWEv/blhL/XkAHkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAdFAIA1pIRHNuWEv/FhxD/AwIAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqHAMA25YS/9uWEv/IiRD/IhcCAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAABgQAAKlzDQDblhL/25YS/3BMCf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSZAwU25YS/9uWEv/GhxD/OCYEAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAABYPAQChbg0A25YS/9uWEv/EhhD/DgkBvgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8KAQC4fg//25YS/9uW Ev/alRH/k2ULAU01BQArHQMAKx0DADknBAB4UgkA0I8QANuWEv/blhL/yYkQ/ycaA/8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUP AQChbg3525YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/8WHEP8nGwP/AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAIBAABfQQh5xIYQ/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9KQEf93Ugn/EQwBsgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAgAANSQEQ2lICP+CWAr/jWEL/29MCf9FLwX/DAgBjAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA///////////////////////////wAAAP4AAAA8AAAAGH///hj///+A// //gP+f/4D/H//I/x//iP8f/4h+P/+MAD//DgB/+B+B/+A/4//g/+P/4//x/8P/8f/H//D/h//4Pw///A Af//4AP///gP//////////////////////8= ================================================ FILE: FreeHttpControl/HttpFilterWindow.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class HttpFilterWindow { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(HttpFilterWindow)); this.bt_ok = new System.Windows.Forms.Button(); this.cb_macthMode = new System.Windows.Forms.ComboBox(); this.rtb_bodyFilter = new System.Windows.Forms.RichTextBox(); this.lb_info_1 = new System.Windows.Forms.Label(); this.cb_macthUriMode = new System.Windows.Forms.ComboBox(); this.tb_urlFilter = new System.Windows.Forms.TextBox(); this.lb_info_2 = new System.Windows.Forms.Label(); this.tbe_urlFilter = new FreeHttp.FreeHttpControl.TextBoxEditer(); this.FilterHeads = new FreeHttp.FreeHttpControl.EditListView(); this.lb_info_3 = new System.Windows.Forms.Label(); this.tb_RuleAlias = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.SuspendLayout(); // // bt_ok // this.bt_ok.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.bt_ok.Location = new System.Drawing.Point(537, 318); this.bt_ok.Name = "bt_ok"; this.bt_ok.Size = new System.Drawing.Size(75, 23); this.bt_ok.TabIndex = 9; this.bt_ok.Text = "confirm"; this.bt_ok.UseVisualStyleBackColor = true; this.bt_ok.Click += new System.EventHandler(this.bt_ok_Click); // // cb_macthMode // this.cb_macthMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cb_macthMode.FormattingEnabled = true; this.cb_macthMode.Items.AddRange(new object[] { "Contain", "StartWith", "Is", "Regex", "AllPass"}); this.cb_macthMode.Location = new System.Drawing.Point(5, 241); this.cb_macthMode.Name = "cb_macthMode"; this.cb_macthMode.Size = new System.Drawing.Size(95, 20); this.cb_macthMode.TabIndex = 10; this.cb_macthMode.SelectedIndexChanged += new System.EventHandler(this.cb_macthMode_SelectedIndexChanged); // // rtb_bodyFilter // this.rtb_bodyFilter.Location = new System.Drawing.Point(109, 216); this.rtb_bodyFilter.Name = "rtb_bodyFilter"; this.rtb_bodyFilter.Size = new System.Drawing.Size(501, 100); this.rtb_bodyFilter.TabIndex = 11; this.rtb_bodyFilter.Text = ""; // // lb_info_1 // this.lb_info_1.AutoSize = true; this.lb_info_1.Location = new System.Drawing.Point(5, 221); this.lb_info_1.Name = "lb_info_1"; this.lb_info_1.Size = new System.Drawing.Size(101, 12); this.lb_info_1.TabIndex = 12; this.lb_info_1.Text = "HTTP Body Filter"; // // cb_macthUriMode // this.cb_macthUriMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cb_macthUriMode.FormattingEnabled = true; this.cb_macthUriMode.Items.AddRange(new object[] { "Contain", "StartWith", "EndWith", "Is", "Regex", "AllPass"}); this.cb_macthUriMode.Location = new System.Drawing.Point(84, 6); this.cb_macthUriMode.Name = "cb_macthUriMode"; this.cb_macthUriMode.Size = new System.Drawing.Size(89, 20); this.cb_macthUriMode.TabIndex = 14; // // tb_urlFilter // this.tb_urlFilter.AllowDrop = true; this.tb_urlFilter.Location = new System.Drawing.Point(179, 5); this.tb_urlFilter.Name = "tb_urlFilter"; this.tb_urlFilter.Size = new System.Drawing.Size(433, 21); this.tb_urlFilter.TabIndex = 13; this.tb_urlFilter.Enter += new System.EventHandler(this.tb_urlFilter_Enter); this.tb_urlFilter.Leave += new System.EventHandler(this.tb_urlFilter_Leave); // // lb_info_2 // this.lb_info_2.AutoSize = true; this.lb_info_2.Location = new System.Drawing.Point(7, 9); this.lb_info_2.Name = "lb_info_2"; this.lb_info_2.Size = new System.Drawing.Size(65, 12); this.lb_info_2.TabIndex = 15; this.lb_info_2.Text = "Uri Filter"; // // tbe_urlFilter // this.tbe_urlFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.tbe_urlFilter.BackColor = System.Drawing.SystemColors.Window; this.tbe_urlFilter.EditTextBox = this.tb_urlFilter; this.tbe_urlFilter.Location = new System.Drawing.Point(589, 5); this.tbe_urlFilter.MainContainerControl = this; this.tbe_urlFilter.Name = "tbe_urlFilter"; this.tbe_urlFilter.Size = new System.Drawing.Size(21, 21); this.tbe_urlFilter.TabIndex = 51; // // FilterHeads // this.FilterHeads.ColumnHeaderName = "Head Filter"; this.FilterHeads.IsItemUnique = true; this.FilterHeads.IsKeyValue = true; this.FilterHeads.Location = new System.Drawing.Point(2, 31); this.FilterHeads.Name = "FilterHeads"; this.FilterHeads.Size = new System.Drawing.Size(610, 181); this.FilterHeads.SplitStr = " "; this.FilterHeads.TabIndex = 2; // // lb_info_3 // this.lb_info_3.AutoSize = true; this.lb_info_3.Location = new System.Drawing.Point(6, 323); this.lb_info_3.Name = "lb_info_3"; this.lb_info_3.Size = new System.Drawing.Size(65, 12); this.lb_info_3.TabIndex = 52; this.lb_info_3.Text = "Rule Alias"; // // tb_RuleAlias // this.tb_RuleAlias.Location = new System.Drawing.Point(108, 319); this.tb_RuleAlias.Name = "tb_RuleAlias"; this.tb_RuleAlias.Size = new System.Drawing.Size(423, 21); this.tb_RuleAlias.TabIndex = 53; this.tb_RuleAlias.WatermarkText = "set the rule alias if it is exist"; // // HttpFilterWindow // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(614, 344); this.Controls.Add(this.tb_RuleAlias); this.Controls.Add(this.lb_info_3); this.Controls.Add(this.tbe_urlFilter); this.Controls.Add(this.lb_info_2); this.Controls.Add(this.cb_macthUriMode); this.Controls.Add(this.tb_urlFilter); this.Controls.Add(this.lb_info_1); this.Controls.Add(this.rtb_bodyFilter); this.Controls.Add(this.cb_macthMode); this.Controls.Add(this.bt_ok); this.Controls.Add(this.FilterHeads); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "HttpFilterWindow"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "HttpFilterWindow"; this.Deactivate += new System.EventHandler(this.HttpFilterWindow_Deactivate); this.Load += new System.EventHandler(this.HttpFilterWindow_Load); this.ResumeLayout(false); this.PerformLayout(); } #endregion private EditListView FilterHeads; private System.Windows.Forms.Button bt_ok; private System.Windows.Forms.ComboBox cb_macthMode; private System.Windows.Forms.RichTextBox rtb_bodyFilter; private System.Windows.Forms.Label lb_info_1; private System.Windows.Forms.ComboBox cb_macthUriMode; private System.Windows.Forms.TextBox tb_urlFilter; private System.Windows.Forms.Label lb_info_2; private TextBoxEditer tbe_urlFilter; private System.Windows.Forms.Label lb_info_3; private WatermakTextBox tb_RuleAlias; } } ================================================ FILE: FreeHttpControl/HttpFilterWindow.cs ================================================ using FreeHttp.FiddlerHelper; using FreeHttp.HttpHelper; using FreeHttp.MyHelper; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static FreeHttp.FreeHttpControl.FreeHttpWindow; namespace FreeHttp.FreeHttpControl { public partial class HttpFilterWindow : Form { public HttpFilterWindow() { InitializeComponent(); } FiddlerHttpFilter httpFilter; TamperProtocalType protocolMode; public HttpFilterWindow(object filter , TamperProtocalType mode = TamperProtocalType.Http) :this() { httpFilter = filter as FiddlerHttpFilter; protocolMode = mode; } private void HttpFilterWindow_Load(object sender, EventArgs e) { //this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximumSize = this.Size; this.MinimumSize = this.Size; tbe_urlFilter.Visible = tb_urlFilter.Focused; tbe_urlFilter.OnCloseEditBox += tbe_urlFilter_OnCloseEditBox; if (httpFilter == null) { MessageBox.Show("your FiddlerHttpFilter is null","error",MessageBoxButtons.OK,MessageBoxIcon.Error); this.Close(); return; } if(httpFilter.UriMatch!=null) { cb_macthUriMode.Text = httpFilter.UriMatch.MatchMode.ToString(); tb_urlFilter.Text = string.IsNullOrEmpty(httpFilter.UriMatch.MatchUri) ? "" : httpFilter.UriMatch.MatchUri; } else { cb_macthUriMode.SelectedIndex = 0; } if(httpFilter.HeadMatch!=null) { foreach(var tempHeadsFilter in httpFilter.HeadMatch.HeadsFilter) { FilterHeads.ListDataView.Items.Add(string.Format("{0}{1}{2}", tempHeadsFilter.Key, FilterHeads.SplitStr, tempHeadsFilter.Value)); } } if(httpFilter.BodyMatch!=null) { cb_macthMode.Text = httpFilter.BodyMatch.MatchMode.ToString(); rtb_bodyFilter.Text = string.IsNullOrEmpty(httpFilter.BodyMatch.MatchUri) ? "" : httpFilter.BodyMatch.MatchUri; } else { cb_macthMode.SelectedIndex = 4; } if(!string.IsNullOrEmpty(httpFilter.Name)) { tb_RuleAlias.Text = httpFilter.Name; } if(protocolMode == TamperProtocalType.WebSocket) { this.Text = "WebsocketFilterWindow"; FilterHeads.Enabled = false; lb_info_1.Text = "Payload Filter"; } } private void bt_ok_Click(object sender, EventArgs e) { FiddlerUriMatchMode matchUriMode = FiddlerUriMatchMode.AllPass; if (!Enum.TryParse(cb_macthUriMode.Text, out matchUriMode)) { throw new Exception("get error FiddlerUriMatchMode"); } if (httpFilter.UriMatch!=null) { httpFilter.UriMatch.MatchMode = matchUriMode; httpFilter.UriMatch.MatchUri = tb_urlFilter.Text; } else { httpFilter.UriMatch = new FiddlerUriMatch(matchUriMode, tb_urlFilter.Text); } if(FilterHeads.ListDataView.Items.Count>0) { httpFilter.HeadMatch = new FiddlerHeadMatch(); foreach (ListViewItem tempLv in FilterHeads.ListDataView.Items) { string tempStr = tempLv.Text; string tempKey; string tempVaule; if (tempStr.Contains(FilterHeads.SplitStr)) { tempKey = tempStr.Remove(tempStr.IndexOf(FilterHeads.SplitStr)); tempVaule = tempStr.Substring(tempStr.IndexOf(FilterHeads.SplitStr) + FilterHeads.SplitStr.Length); httpFilter.HeadMatch.AddHeadMatch(new MyKeyValuePair(tempKey, tempVaule)); } else { httpFilter.HeadMatch.AddHeadMatch(new MyKeyValuePair(tempStr, "")); } } } else { httpFilter.HeadMatch = null; } FiddlerUriMatchMode matchMode = FiddlerUriMatchMode.AllPass; if (!Enum.TryParse(cb_macthMode.Text, out matchMode)) { throw new Exception("get error FiddlerBodyMatchMode"); } if (matchMode == FiddlerUriMatchMode.AllPass || (rtb_bodyFilter.Text == "" && matchMode != FiddlerUriMatchMode.Is)) { httpFilter.BodyMatch = null; } else { try { httpFilter.BodyMatch = new FiddlerBodyMatch(matchMode, rtb_bodyFilter.Text); } catch(Exception ex) { MessageBox.Show(string.Format("your body filter is illage \r\n{0}", ex.Message), "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } } if (tb_RuleAlias.Text!=null) { httpFilter.Name = tb_RuleAlias.Text; } this.Close(); } private void cb_macthMode_SelectedIndexChanged(object sender, EventArgs e) { if(cb_macthMode.SelectedIndex==4) { rtb_bodyFilter.Clear(); rtb_bodyFilter.Enabled = false; } else { rtb_bodyFilter.Enabled = true; } } void tbe_urlFilter_OnCloseEditBox(object sender, TextBoxEditer.CloseEditBoxEventArgs e) { //如果主窗口失活导致编辑窗关闭,不会有textbox Leave的事件 tbe_urlFilter.Visible = false; } private void HttpFilterWindow_Deactivate(object sender, EventArgs e) { tbe_urlFilter.CloseRichTextBox(); tbe_urlFilter.Visible = tb_urlFilter.Focused; } private void tb_urlFilter_Enter(object sender, EventArgs e) { tbe_urlFilter.Visible = true; } private void tb_urlFilter_Leave(object sender, EventArgs e) { if (!(tbe_urlFilter.IsShowEditRichTextBox)) { tbe_urlFilter.Visible = false; } } } } ================================================ FILE: FreeHttpControl/HttpFilterWindow.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAMQOAADEDgAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA25URsNqVEH0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANqWEubblhL/25YS/9uWEv/flxAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADalhLy25YS/9uWEv/blhL/25YS/9uWEv/dlg9EAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANuWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/dlg9EAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev/dlg9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2pYS5NuWEv/blhL/25YS/9uWEv/blhL/25YS9QAA AADblhL/25YS/9uWEv/dlg9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25YS/9uW Ev/clRI6AAAAAAAAAADblhL/25YS/9uWEv/dlg9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6YEC/blhL/25YS/9uW Ev/blhL/25YRzgAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/dlg9EAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuX EDHblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/dlg9EAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANuXEDHblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev/dlg9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANuXEDHblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv/dlg9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuXEDHblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/dlg9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuXEDHblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/dlg9EAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuX EDHblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/dlg9EAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANuXEDHblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev/dlg9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANuXEDHblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv/dlg9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuXEDHblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/dlg9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuXEDHblhL/25YS/9uW Ev8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/dlg9EAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuX EDHblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/dlg9EAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANuXEDHblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev/dlg9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANuXEDHblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv/dlg9EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANqWEvLblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2pYPItuWEv/blhL/25YS/9uV EbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADalRGY25YS/9uWEv/blhL/25UR/QAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblA8y25YS/9uW Ev/blhL/25YS/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25YRiNuWEv/blhL/25YS/9uW ED8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv/blhL/25QSOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuW Ev/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANuWEaLblhL/25YS/9uWEv/dkxEtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANyVEh3blhL/25YS/9uWEv/blhK4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANuWEv/blhL/25YS/9qVEvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhHu25YS/9uWEv/blhL/25YRxQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2pUS9NuWEv/blhL/25YS/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25YS/9uWEv/blhL/25YS/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADalhH525YS/9uWEv/blhL/2pYRpwAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuW Ev/blhL/25YS/9uWEf4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuUDzLblhL/25YS/9uW Ev/clhGXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANuWEYXblhL/25YS/9uWEv/blQ9GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANuW Ev/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA25URsNuWEv/blhL/25YS/96WDScAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADclRId25YS/9uWEv/blhL/25YS/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADblhG/25YS/9uWEv/blhL/2pUS9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ZkNFNuW Ev/blhL/25YS/9uWEswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANuWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANqVEfvblhL/25YS/9uWEv8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhH+AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25QSOduWEv/blhL/25YS/9uW EZYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADalhKD25YS/9uWEv/blhL/25YS/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25YS/9uW Ev/blhL/25YS/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2pYR+duW Ev/blhL/25YS/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADblhL/25YS/9uWEv/blhL/3pYNJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANuWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANuWEb/blhL/25YS/9uWEv/clRIdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANmZDRTblhL/25YS/9uWEv/alhHRAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANuWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25QPMgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25UR/duWEv/blhL/25YS/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA25YS/9uW Ev/blhL/25YS/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uWEv/blhL/25URlQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANuWEv/blhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADblhL/25YS/9uW Ev/blRH9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANqWEfnblhL/25YS/9uWEv8AAAAAAAAAAAAAAAAAAAAAAAAAANuW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/AAAAAAAA AAAAAAAAAAAAANuWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL///8AAQAAAAAAAAAAAAAAANuWEc7blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uWEv/blhL/25YS/9uW Ev/blhL/25YS/9uWEv/blhHTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////4/// AAD///+D//8AAP///gP//wAA///4A///AAD///Bj//8AAP//wOP//wAA///D4///AAD//8fj//8AAP// x+P//wAA///H4///AAD//8fj//8AAP//x+P//wAA///H4///AAD//8fj//8AAP//x+P//wAA///H4/// AAD//8fj//8AAP//x+P//wAA///H4///AAD//8fj//8AAP//x+H//wAA//+P8f//AAD//w/4//8AAP/+ H/h//wAA//4//H//AAD//H/+P/8AAP/8f/4f/wAA//j//x//AAD/8f//j/8AAP/h//+H/wAA/+P//8P/ AAD/x///4/8AAP+H///h/wAA/4////H/AAD/H///+H8AAP4f///8fwAA/D////w/AAD8f////j8AAPh/ ///+HwAA+P////8PAADh/////4cAAOP/////xwAAwAAAAAADAADAAAAAAAMAAOAAAAAABwAA//////// AAA= ================================================ FILE: FreeHttpControl/MyBaseInfoWindow.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing; using System.ComponentModel; /******************************************************************************* * Copyright (c) 2015 lijie * All rights reserved. * * 文件名称: * 内容摘要: mycllq@hotmail.com * * 历史记录: * 日 期: 201505016 创建人: 李杰 15158155511 * 描 述: 创建 *******************************************************************************/ namespace FreeHttp.FreeHttpControl { public partial class MyBaseInfoWindow : Form { private void InitializeComponent() { this.lb_info = new System.Windows.Forms.Label(); this.pictureBox_hide = new System.Windows.Forms.PictureBox(); this.pictureBox_close = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_hide)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_close)).BeginInit(); this.SuspendLayout(); // // lb_info // this.lb_info.AutoSize = true; this.lb_info.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lb_info.ForeColor = System.Drawing.Color.SaddleBrown; this.lb_info.Location = new System.Drawing.Point(3, 4); this.lb_info.Name = "lb_info"; this.lb_info.Size = new System.Drawing.Size(111, 13); this.lb_info.TabIndex = 12; this.lb_info.Text = "CaseParameter"; // // pictureBox_hide // this.pictureBox_hide.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pictureBox_hide.Cursor = System.Windows.Forms.Cursors.Hand; this.pictureBox_hide.Image = global::FreeHttp.Properties.Resources.minimize; this.pictureBox_hide.Location = new System.Drawing.Point(344, 3); this.pictureBox_hide.Name = "pictureBox_hide"; this.pictureBox_hide.Size = new System.Drawing.Size(23, 23); this.pictureBox_hide.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox_hide.TabIndex = 13; this.pictureBox_hide.TabStop = false; this.pictureBox_hide.Click += new System.EventHandler(this.pictureBox_hide_Click); this.pictureBox_hide.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pictureBox_hide.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // pictureBox_close // this.pictureBox_close.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pictureBox_close.Cursor = System.Windows.Forms.Cursors.Hand; this.pictureBox_close.Image = global::FreeHttp.Properties.Resources.close; this.pictureBox_close.Location = new System.Drawing.Point(373, 3); this.pictureBox_close.Name = "pictureBox_close"; this.pictureBox_close.Size = new System.Drawing.Size(23, 23); this.pictureBox_close.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox_close.TabIndex = 10; this.pictureBox_close.TabStop = false; this.pictureBox_close.Click += new System.EventHandler(this.pictureBox_close_Click); this.pictureBox_close.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pictureBox_close.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // MyBaseInfoWindow // this.BackColor = System.Drawing.SystemColors.GradientActiveCaption; this.ClientSize = new System.Drawing.Size(400, 250); this.Controls.Add(this.pictureBox_hide); this.Controls.Add(this.lb_info); this.Controls.Add(this.pictureBox_close); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Name = "MyBaseInfoWindow"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MyBaseInfoWindow_FormClosing); this.Load += new System.EventHandler(this.myCaseParameter_Load); this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.MyBaseInfoWindow_MouseDown); this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.MyBaseInfoWindow_MouseMove); this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.MyBaseInfoWindow_MouseUp); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_hide)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_close)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } public MyBaseInfoWindow() { InitializeComponent(); } private System.Windows.Forms.PictureBox pictureBox_close; private System.Windows.Forms.Label lb_info; private PictureBox pictureBox_hide; private Timer myUpdataTime = new Timer(); private int intervalTime = 0; private string myWindowName = "unknow"; private bool isShowHideBox = true; /// /// 获取或设置自定义窗体名称 /// [DescriptionAttribute("窗体名称")] public string WindowName { get { return myWindowName; } set { myWindowName =this.Text=lb_info.Text= value; } } /// /// 获取或设置是否显示最最小化按钮 /// [Description("是否显示最最小化按钮")] public bool IsShowHideBox { get { return isShowHideBox; } set { isShowHideBox = pictureBox_hide.Visible= value; } } /// /// 获取或设置定时刷新窗体的时间 /// [Description("获取或设置定时刷新窗体的时间")] public int IntervalTime { get { return intervalTime; } set { intervalTime = value; } } public void myCaseParameter_Load(object sender, EventArgs e) { pictureBox_hide.Visible = isShowHideBox; this.TopMost = false; if (IntervalTime > 0) { myUpdataTime.Interval = IntervalTime; myUpdataTime.Enabled = true; myUpdataTime.Tick += new EventHandler(myUpdataTime_Tick); myUpdataTime.Start(); } lb_info.Text = myWindowName; this.Text = myWindowName; this.MaximizeBox = false; pictureBox_hide.Location = new Point(this.Width - 56, 4); pictureBox_close.Location = new Point(this.Width - 27, 4); this.Resize += MyChildWindow_Resize; } void MyChildWindow_Resize(object sender, EventArgs e) { pictureBox_hide.Location = new Point(this.Width - 56, 4); pictureBox_close.Location = new Point(this.Width - 27, 4); } public void myUpdataTime_Tick(object sender, EventArgs e) { VirtualUpdataTime_Tick(); } public virtual void VirtualUpdataTime_Tick() { } private void pictureBox_close_Click(object sender, EventArgs e) { this.Close(); } private void pictureBox_hide_Click(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } //pictureBox change for all public void pictureBox_MouseMove(object sender, MouseEventArgs e) { ((PictureBox)sender).BackColor = Color.Honeydew; } //pictureBox change for all public void pictureBox_MouseLeave(object sender, EventArgs e) { ((PictureBox)sender).BackColor = Color.Transparent; } bool isMoveForm = false; Point myFormStartPos = new Point(0, 0); Point tempCrtPos = new Point(0, 0); private void MyBaseInfoWindow_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { isMoveForm = true; myFormStartPos = new Point(-e.X, -e.Y);//相对当前控件的鼠标位置 tempCrtPos = PointToScreen(new Point(-this.Location.X,-this.Location.Y)); //控件相对与容器转换为相对于屏幕 } } private void MyBaseInfoWindow_MouseUp(object sender, MouseEventArgs e) { isMoveForm = false; } private void MyBaseInfoWindow_MouseMove(object sender, MouseEventArgs e) { if (isMoveForm) { Point nowMousePos = Control.MousePosition;//鼠标光标相对屏幕的位置 nowMousePos.Offset(myFormStartPos); //this.Location = nowMousePos;//相对于父窗体,(如果没有父窗体则可以这样用) this.Location = new Point(nowMousePos.X - tempCrtPos.X, nowMousePos.Y - tempCrtPos.Y); } } private void MyBaseInfoWindow_FormClosing(object sender, FormClosingEventArgs e) { myUpdataTime.Tick -= new EventHandler(myUpdataTime_Tick); } } } ================================================ FILE: FreeHttpControl/MyBaseInfoWindow.resx ================================================ text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: FreeHttpControl/MyControl/AddParameterPickBox.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl.MyControl { partial class AddParameterPickBox { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region 组件设计器生成的代码 /// /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddParameterPickBox)); this.cb_ParameterType = new System.Windows.Forms.ComboBox(); this.cb_ParameterTypeAddition = new System.Windows.Forms.ComboBox(); this.pb_add = new System.Windows.Forms.PictureBox(); this.pb_remove = new System.Windows.Forms.PictureBox(); this.tb_ParameterExpression = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.tb_ParameterName = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.cb_pickRange = new System.Windows.Forms.ComboBox(); this.errorProvider_addParameter = new System.Windows.Forms.ErrorProvider(this.components); ((System.ComponentModel.ISupportInitialize)(this.pb_add)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_remove)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.errorProvider_addParameter)).BeginInit(); this.SuspendLayout(); // // cb_ParameterType // this.cb_ParameterType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cb_ParameterType.FormattingEnabled = true; this.cb_ParameterType.Items.AddRange(new object[] { "Regex", "Str", "Xml"}); this.cb_ParameterType.Location = new System.Drawing.Point(124, 3); this.cb_ParameterType.Name = "cb_ParameterType"; this.cb_ParameterType.Size = new System.Drawing.Size(83, 20); this.cb_ParameterType.TabIndex = 1; this.cb_ParameterType.SelectedIndexChanged += new System.EventHandler(this.cb_ParameterType_SelectedIndexChanged); // // cb_ParameterTypeAddition // this.cb_ParameterTypeAddition.FormattingEnabled = true; this.cb_ParameterTypeAddition.Location = new System.Drawing.Point(210, 3); this.cb_ParameterTypeAddition.Name = "cb_ParameterTypeAddition"; this.cb_ParameterTypeAddition.Size = new System.Drawing.Size(96, 20); this.cb_ParameterTypeAddition.TabIndex = 2; this.cb_ParameterTypeAddition.SelectedIndexChanged += new System.EventHandler(this.cb_ParameterTypeAddition_SelectedIndexChanged); // // pb_add // this.pb_add.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_add.BackColor = System.Drawing.Color.Transparent; this.pb_add.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_add.Image = ((System.Drawing.Image)(resources.GetObject("pb_add.Image"))); this.pb_add.Location = new System.Drawing.Point(729, 1); this.pb_add.Name = "pb_add"; this.pb_add.Size = new System.Drawing.Size(23, 23); this.pb_add.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_add.TabIndex = 57; this.pb_add.TabStop = false; this.pb_add.Click += new System.EventHandler(this.pb_add_Click); this.pb_add.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pb_add.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // pb_remove // this.pb_remove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_remove.BackColor = System.Drawing.Color.Transparent; this.pb_remove.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_remove.Image = ((System.Drawing.Image)(resources.GetObject("pb_remove.Image"))); this.pb_remove.Location = new System.Drawing.Point(752, 1); this.pb_remove.Name = "pb_remove"; this.pb_remove.Size = new System.Drawing.Size(23, 23); this.pb_remove.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_remove.TabIndex = 56; this.pb_remove.TabStop = false; this.pb_remove.Click += new System.EventHandler(this.pb_remove_Click); this.pb_remove.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pb_remove.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // tb_ParameterExpression // this.tb_ParameterExpression.Location = new System.Drawing.Point(389, 2); this.tb_ParameterExpression.Name = "tb_ParameterExpression"; this.tb_ParameterExpression.Size = new System.Drawing.Size(336, 21); this.tb_ParameterExpression.TabIndex = 3; this.tb_ParameterExpression.WatermarkText = null; // // tb_ParameterName // this.errorProvider_addParameter.SetIconAlignment(this.tb_ParameterName, System.Windows.Forms.ErrorIconAlignment.TopRight); this.tb_ParameterName.Location = new System.Drawing.Point(4, 3); this.tb_ParameterName.Name = "tb_ParameterName"; this.tb_ParameterName.Size = new System.Drawing.Size(117, 21); this.tb_ParameterName.TabIndex = 0; this.tb_ParameterName.WatermarkText = "name"; // // cb_pickRange // this.cb_pickRange.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cb_pickRange.FormattingEnabled = true; this.cb_pickRange.Items.AddRange(new object[] { "Line", "Heads", "Entity"}); this.cb_pickRange.Location = new System.Drawing.Point(309, 3); this.cb_pickRange.Name = "cb_pickRange"; this.cb_pickRange.Size = new System.Drawing.Size(75, 20); this.cb_pickRange.TabIndex = 58; // // errorProvider_addParameter // this.errorProvider_addParameter.ContainerControl = this; // // AddParameterPickBox // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.cb_pickRange); this.Controls.Add(this.pb_add); this.Controls.Add(this.pb_remove); this.Controls.Add(this.tb_ParameterExpression); this.Controls.Add(this.cb_ParameterTypeAddition); this.Controls.Add(this.cb_ParameterType); this.Controls.Add(this.tb_ParameterName); this.Name = "AddParameterPickBox"; this.Size = new System.Drawing.Size(777, 26); this.Validating += new System.ComponentModel.CancelEventHandler(this.AddParameterPickBox_Validating); this.Validated += new System.EventHandler(this.AddParameterPickBox_Validated); ((System.ComponentModel.ISupportInitialize)(this.pb_add)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_remove)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.errorProvider_addParameter)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private WatermakTextBox tb_ParameterName; private System.Windows.Forms.ComboBox cb_ParameterType; private System.Windows.Forms.ComboBox cb_ParameterTypeAddition; private WatermakTextBox tb_ParameterExpression; private System.Windows.Forms.PictureBox pb_add; private System.Windows.Forms.PictureBox pb_remove; private System.Windows.Forms.ComboBox cb_pickRange; private System.Windows.Forms.ErrorProvider errorProvider_addParameter; } } ================================================ FILE: FreeHttpControl/MyControl/AddParameterPickBox.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using FreeHttp.AutoTest.ParameterizationPick; namespace FreeHttp.FreeHttpControl.MyControl { public partial class AddParameterPickBox : UserControl { public class AddParameterEventArgs:EventArgs { public bool IsAdd{get; set;} public AddParameterEventArgs(bool isAdd) { IsAdd = isAdd; } } public event EventHandler OnAddParameterClick; public AddParameterPickBox() { InitializeComponent(); cb_ParameterType.SelectedIndex = 0; cb_pickRange.SelectedIndex = 2; } public AddParameterPickBox(ParameterPick yourParameterPick) { InitializeComponent(); tb_ParameterName.Text = yourParameterPick.ParameterName; tb_ParameterExpression.Text = yourParameterPick.PickTypeExpression; cb_ParameterType.Text = yourParameterPick.PickType.ToString(); cb_ParameterTypeAddition.Text = yourParameterPick.PickTypeAdditional.ToString(); cb_pickRange.Text = yourParameterPick.PickRange.ToString(); } private void cb_ParameterType_SelectedIndexChanged(object sender, EventArgs e) { ParameterPickType tempParameterPickType = (ParameterPickType)Enum.Parse(typeof(ParameterPickType), cb_ParameterType.Text); if(ParameterPickTypeEngine.dictionaryParameterPickFunc[tempParameterPickType].Editable) { cb_ParameterTypeAddition.DropDownStyle = ComboBoxStyle.DropDown; } else { cb_ParameterTypeAddition.DropDownStyle = ComboBoxStyle.DropDownList; } cb_ParameterTypeAddition.DataSource = ParameterPickTypeEngine.dictionaryParameterPickFunc[tempParameterPickType].PickTypeAdditionalList; cb_ParameterTypeAddition.DisplayMember = "Key"; //可以把DisplayMember与ValueMember放到DataSource设置的前面 cb_ParameterTypeAddition.ValueMember = "Value"; cb_ParameterTypeAddition.SelectedIndex = 0; cb_ParameterTypeAddition_SelectedIndexChanged(null, null); } //设置 cb_ParameterTypeAddition.DataSource 会触发cb_ParameterTypeAddition_SelectedIndexChanged ,如果没有提前设置ValueMember,SelectedValue可能不是预期类型 private void cb_ParameterTypeAddition_SelectedIndexChanged(object sender, EventArgs e) { if(cb_ParameterTypeAddition.SelectedValue.GetType() == typeof(KeyValuePair)) // as 只能用于引用类型比较 { return; } tb_ParameterExpression.WatermarkText = (string)cb_ParameterTypeAddition.SelectedValue; } //pictureBox change for all public void pictureBox_MouseMove(object sender, MouseEventArgs e) { ((PictureBox)sender).BackColor = Color.Honeydew; } //pictureBox change for all public void pictureBox_MouseLeave(object sender, EventArgs e) { ((PictureBox)sender).BackColor = Color.Transparent; } private void AddParameterPickBox_Validating(object sender, CancelEventArgs e) { //string errorMsg; //if (!ValidEmailAddress(textBox1.Text, out errorMsg)) //{ // // Cancel the event and select the text to be corrected by the user. // e.Cancel = true; // textBox1.Select(0, textBox1.Text.Length); // // Set the ErrorProvider error with the text to display. // this.errorProvider1.SetError(textBox1, errorMsg); //} //this.errorProvider_addParameter.Clear(); try { this.Tag = GetParameterPickInfo(); } catch(Exception) { this.Tag = null; e.Cancel = true; } } private void AddParameterPickBox_Validated(object sender, EventArgs e) { this.errorProvider_addParameter.Clear(); } private void pb_add_Click(object sender, EventArgs e) { if(OnAddParameterClick!=null) { this.OnAddParameterClick(this, new AddParameterEventArgs(true)); } } private void pb_remove_Click(object sender, EventArgs e) { this.OnValidated(e); if (OnAddParameterClick != null) { this.OnAddParameterClick(this, new AddParameterEventArgs(false)); } } public void GetFocus() { tb_ParameterName.Focus(); tb_ParameterName.Select(); } public ParameterPick GetParameterPickInfo() { Action MyThrowException = (myControl , errorMes)=>{ FreeHttpWindow.MarkWarnControl(myControl); this.errorProvider_addParameter.SetIconAlignment(myControl, ErrorIconAlignment.MiddleRight); this.errorProvider_addParameter.SetIconPadding(myControl, -20); this.errorProvider_addParameter.SetError(myControl, errorMes); myControl.Select(); myControl.Focus(); throw new Exception(errorMes); }; this.errorProvider_addParameter.Clear(); ParameterPick returnParameterPick=new ParameterPick(); ParameterPickType tempParameterPickType; if (string.IsNullOrEmpty(tb_ParameterName.Text)) { MyThrowException(tb_ParameterName, "your ParameterName is empty"); } returnParameterPick.ParameterName = tb_ParameterName.Text; returnParameterPick.PickRange = (ParameterPickRange)Enum.Parse(typeof(ParameterPickRange), cb_pickRange.Text); if(!Enum.TryParse(cb_ParameterType.Text,out tempParameterPickType)) { MyThrowException(cb_ParameterType, "ParameterPickType Error"); } returnParameterPick.PickType = tempParameterPickType; returnParameterPick.PickTypeAdditional = cb_ParameterTypeAddition.Text; returnParameterPick.PickTypeExpression = tb_ParameterExpression.Text; string tempError = ParameterPickHelper.CheckParameterPickExpression(returnParameterPick); if (tempError!=null) { if (tempError.Contains("PickTypeAdditional")) { MyThrowException(cb_ParameterTypeAddition, tempError); } else { MyThrowException(tb_ParameterExpression, tempError); } } return returnParameterPick; } } } ================================================ FILE: FreeHttpControl/MyControl/AddParameterPickBox.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 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 17, 17 42 ================================================ FILE: FreeHttpControl/MyControl/CBalloonBase.cs ================================================ using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace CBalloon { /// /// Summary description for CBalloonBase. /// public class CBalloonBase : System.Windows.Forms.Form { #region enumeration describing the orientation of the bubble tip public enum sdSide { sd_top, sd_left, sd_bottom, sd_right, sd_horizontal, sd_vertical } public enum alAlign { al_lhs, al_mid, al_rhs } #endregion const int C_QUOTEH = 25; const int C_ARCH = 5; const int C_SHADOW = 5; protected GraphicsPath m_path; protected Region m_rOuterFrame; protected Region m_rInnerFrame; protected bool m_bShowFrame = true; protected bool m_bIsShadow = false; protected bool m_bHasShadow = false; // properties that allow a color gradient from top left to top right of the balloon's frame protected Color m_cTopLeft = Color.Aqua; protected Color m_cBotRite = Color.Lime; // location of the balloon's tail tip (left, right, top, bottom etc) private alAlign m_tipAlign = alAlign.al_lhs; private sdSide m_tipSide = sdSide.sd_top; // absolute position of the balloon's tail tip public Point m_ptTipPosition = new Point(0, 0); // rectangle and center point used to calculate the color gradient for the frame public RectangleF m_rtBalloonF = new RectangleF(0.0F, 0.0F, 1.0F, 1.0F); private Point m_ptCenter = new Point(0, 0); // tail offset from the nearest rounded edge (auto calculated when anchored to a point or control) protected int m_nTailOffset = 30; // marks the position, width and height of the anchor point or control // if a point is used, the width and height are set to zero protected Rectangle m_rtAnchor = new Rectangle(0, 0, 0, 0); // the parent form which contains the anchor point private Form m_fmParent = null; // a shadow form constructed from this class, shaded gray with opacity below 100% to simulate a shadow private CBalloon.CBalloonBase m_fmShadow = null; // event handler which is attached to the form containing the anchor point. when // the form moves, the balloon will move with it public System.EventHandler m_evhMove; // stuff the compiler adds private System.ComponentModel.Container components = null; public CBalloonBase() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // } /// /// Clean up any resources being used. /// protected override void Dispose(bool disposing) { if (disposing) { if (components != null) { components.Dispose(); } } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.SuspendLayout(); // // CBalloonBase // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); this.ClientSize = new System.Drawing.Size(295, 214); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "CBalloonBase"; this.ShowInTaskbar = false; this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; this.Paint += new System.Windows.Forms.PaintEventHandler(this.CBalloonBase_Paint); this.VisibleChanged += new System.EventHandler(this.CBalloonBase_VisibleChanged); this.Click += new System.EventHandler(this.CBalloonBase_Click); this.Closing += new System.ComponentModel.CancelEventHandler(this.CBalloonBase_Closing); this.Move += new System.EventHandler(this.CBalloonBase_Move); this.Resize += new System.EventHandler(this.CBalloonBase_Resize); this.ResumeLayout(false); } #endregion // regenerate the path for the balloon, and set the region for the window public void reSizeMe() { m_path = new GraphicsPath(); // nW and nH are just shorthand for the width and height of the form int nW = this.Width; int nH = this.Height; int nOuter = C_QUOTEH; int nInner = C_QUOTEH + C_ARCH; // define the points for the balloon tail pA, pB and pC denote the outer frame for the tail while pAi, // pBi and pCi denote the inner border (used to create the inside boundary of a frame for our balloon) Point pA = new Point(); Point pAi = new Point(); Point pB = new Point(); Point pBi = new Point(); Point pC = new Point(); Point pCi = new Point(); #region this section calculates the position of the ballon tail switch (m_tipSide) { // calculate vertical displacement for all top tails case sdSide.sd_top: pA.Y = nOuter; pB.Y = 0; pC.Y = nOuter; pAi.Y = pA.Y + 4; pBi.Y = pB.Y + 4; pCi.Y = pC.Y + 4; goto case sdSide.sd_horizontal; case sdSide.sd_left: pA.X = nOuter; pC.X = nOuter; pB.X = 0; pAi.X = pA.X + 4; pCi.X = pC.X + 4; pBi.X = pB.X + 4; goto case sdSide.sd_vertical; case sdSide.sd_right: pA.X = nW - nOuter; pC.X = nW - nOuter; pB.X = nW; pAi.X = pA.X - 4; pCi.X = pC.X - 4; pBi.X = pB.X - 4; goto case sdSide.sd_vertical; case sdSide.sd_bottom: pA.Y = nH - nOuter; pC.Y = nH - nOuter; pB.Y = nH; pAi.Y = pA.Y - 4; pCi.Y = pC.Y - 4; pBi.Y = pB.Y - 4; goto case sdSide.sd_horizontal; case sdSide.sd_horizontal: if (m_tipAlign == alAlign.al_lhs) { pA.X = nInner + m_nTailOffset; pB.X = pA.X - 10; pC.X = pA.X + 30; pAi.X = pA.X + 4; pBi.X = pB.X + 3; pCi.X = pC.X + 2; } else if (m_tipAlign == alAlign.al_mid) { pB.X = (int)(nW / 2); pA.X = pB.X - 10; pC.X = pB.X + 10; pAi.X = pA.X; pBi.X = pB.X; pCi.X = pC.X; } else { pC.X = (nW - nInner) - m_nTailOffset; pA.X = pC.X - 30; pB.X = pC.X + 10; pAi.X = pA.X - 2; pBi.X = pB.X - 3; pCi.X = pC.X - 4; } break; case sdSide.sd_vertical: if (m_tipAlign == alAlign.al_lhs) { pA.Y = nInner + m_nTailOffset; pC.Y = pA.Y + 30; pB.Y = pA.Y - 10; pAi.Y = pA.Y + 4; pBi.Y = pB.Y + 3; pCi.Y = pC.Y + 2; } else if (m_tipAlign == alAlign.al_mid) { pB.Y = (int)(nH / 2); pA.Y = pB.Y - 10; pC.Y = pB.Y + 10; pAi.Y = pA.Y; pBi.Y = pB.Y; pCi.Y = pC.Y; } else { pC.Y = (nH - nInner) - m_nTailOffset; pA.Y = pC.Y - 30; pB.Y = pC.Y + 10; pAi.Y = pA.Y - 2; pBi.Y = pB.Y - 3; pCi.Y = pC.Y - 4; } break; } #endregion // the new tip position is determined by pB m_ptTipPosition = pB; // generate balloon tail outer path m_path.AddLines(new Point[] { pA, pB, pC }); m_path.CloseFigure(); // generate balloon tail inner path GraphicsPath iPath = new GraphicsPath(); iPath.AddLines(new Point[] { pAi, pBi, pCi }); iPath.CloseFigure(); #region generate the outer frame (m_rOuterFrame) which becomes the shape of the balloon form Size pSize = new Size(nW - (nInner + nInner), nH - (nOuter + nOuter)); Point pLoc = new Point(nInner, nOuter); Rectangle aRect = new Rectangle(pLoc, pSize); m_rOuterFrame = new Region(aRect); // generate 2nd pass region for the outer frame, starting to form the rounded edges pSize.Width += 4; pSize.Height -= 2; pLoc.X -= 2; pLoc.Y += 1; m_rOuterFrame.Union(new Rectangle(pLoc, pSize)); // generate 3rd pass for the outer frame, developing rounded edges pSize.Width += 2; pSize.Height -= 2; pLoc.X -= 1; pLoc.Y += 1; m_rOuterFrame.Union(new Rectangle(pLoc, pSize)); // generate 4th pass for the outer frame, developing rounded edges pSize.Width += 2; pSize.Height -= 2; pLoc.X -= 1; pLoc.Y += 1; m_rOuterFrame.Union(new Rectangle(pLoc, pSize)); // generate 5th pass for the outer frame, completing the rounded edges pSize.Width += 2; pSize.Height -= 4; pLoc.X -= 1; pLoc.Y += 2; m_rOuterFrame.Union(new Rectangle(pLoc, pSize)); // generate 6th pass for the outer frame, adding the balloon tail m_rOuterFrame.Union(m_path); #endregion #region for shadow windows we don't need to paint the area under the foreground balloon if (m_bIsShadow == true) { Region rgnEx; rgnEx = m_rOuterFrame.Clone(); rgnEx.Translate(-C_SHADOW, -C_SHADOW); m_rOuterFrame.Exclude(rgnEx); } #endregion // set the region for the form this.Region = m_rOuterFrame; Graphics eg = Graphics.FromHwnd(this.Handle); // calculate the bounding rectangle for this region (within the context of the form itself) and the centre point for // the rectangle m_rtBalloonF = this.Region.GetBounds(eg); m_ptCenter = new Point((int)((m_rtBalloonF.Width / 2) + m_rtBalloonF.X), (int)((m_rtBalloonF.Height / 2) + m_rtBalloonF.Y)); eg.Dispose(); #region always generate the outline region (m_rInnerFrame), even if we are not going to display it immediately Rectangle myRect = new Rectangle(C_QUOTEH + 6, C_QUOTEH + 4, nW - ((2 * C_QUOTEH) + 12), nH - ((2 * C_QUOTEH) + 8)); Region aRegion = new Region(myRect); // develop client region with rounded edges, 2nd and 3rd pass myRect.X -= 1; myRect.Y += 1; myRect.Width += 2; myRect.Height -= 2; aRegion.Union(myRect); myRect.X -= 1; myRect.Y += 1; myRect.Width += 2; myRect.Height -= 2; aRegion.Union(myRect); // clone the outer region m_rInnerFrame = m_rOuterFrame.Clone(); // exclude the client area and inner balloon tail edge m_rInnerFrame.Exclude(aRegion); m_rInnerFrame.Exclude(iPath); #endregion //add by lulianqi resize the m_fmShadow size when the main window size change if (m_fmShadow != null) { m_fmShadow.Width = this.Width; m_fmShadow.Height = this.Height; } // force a complete redraw this.Invalidate(); } // There are many possible variations on this routine. However this works by calculating the distance to the side // of the screen, then adjusting the position, and direction, of the tail to avoid going off the edge of the screen private bool bCalcTailPos(Point ptA, bool bOnlyBelow) { int nBWidth = this.Width + C_SHADOW - C_QUOTEH; int nBHeight = this.Height + C_SHADOW; // get the pixel dimensions of the screen assuming a single monitor (or two monitors creating a single screen space) Screen[] screens = Screen.AllScreens; int nSWd = screens[0].Bounds.Width; int nSHt = screens[0].Bounds.Height; // if use below is false then we always draw the balloon above the anchor if (bOnlyBelow == false) { this.tailSide = sdSide.sd_bottom; } else { // if we cannot go below, then return false so the calling routine can set a new anchor point // positioned above the control (so the balloon tail is not drawn across the anchor) if (ptA.Y + nBHeight >= nSHt) { return false; } this.tailSide = sdSide.sd_top; } // look for best horizontal fit int nDistToEdge = nSWd - ptA.X; // a) the left-most position of the tail tip is C_QUOTEH from the LHS (corresponding to a tail offset of 5) // b) the tail must be adjust so the remaining balloon plus the shadow and overhang must fit on the screen int nMinLength = (this.Width + C_SHADOW) - C_QUOTEH; if (nDistToEdge > nMinLength) { // okay entire balloon fits, so use the minimum tail offset this.tailOffset = 5; this.tailAlign = alAlign.al_lhs; } else { int nOverlap = nMinLength - nDistToEdge; if (nOverlap < (int)Math.Round(nMinLength / 3.0)) { this.tailOffset = nOverlap + 5; this.tailAlign = alAlign.al_lhs; } else if (nOverlap > (int)Math.Round((nMinLength - (C_QUOTEH + C_ARCH)) / 2.0)) { // tail offset is now measure from the rhs int nTempOffset = (nMinLength - nOverlap) - (C_QUOTEH + C_ARCH); if (nTempOffset < 0) { nTempOffset = 0; } this.tailOffset = nTempOffset + 5; this.tailAlign = alAlign.al_rhs; } else { // tail offset not currently used for mid-point set... probably at some point I will need this.tailOffset = 0; this.tailAlign = alAlign.al_mid; } } // now adjust the position Point atPoint = new Point(0, 0); atPoint.X = ptA.X - m_ptTipPosition.X; atPoint.Y = ptA.Y - m_ptTipPosition.Y; // locate our balloon this.Location = atPoint; return true; } public void setBalloonPosition(Form onForm, Control onControl) { // determine ownership so the balloon stays ontop of the owning form if (m_fmShadow == null) { this.Owner = onForm; } else { m_fmShadow.Owner = onForm; } // remember the control's position and dimensions m_rtAnchor = new Rectangle(onControl.Location, onControl.Size); Point ptA = m_rtAnchor.Location; Point ptC = ptA; // first, try for lower edge of the control as an anchor point ptA.Y += m_rtAnchor.Height; // calculate absolute position on the screen Point ptScreen = onForm.PointToScreen(ptA); // see if we can anchor below the control if (bCalcTailPos(ptScreen, true) == false) { // unable to anchor below, so anchor above ptScreen = onForm.PointToScreen(ptC); bCalcTailPos(ptScreen, false); } m_fmParent = onForm; // attach a callback so we know when the owner is moved. Oh the joys and advantages of delegates! m_evhMove = new System.EventHandler(this.Parent_Move); onForm.Move += m_evhMove; } /// /// change by lulianqui for VinWiew,the old setBalloonPosition has bugs /// /// you form /// the position /// any size public void setBalloonPosition(Form onForm, Point myPoint ,Size mySize) { // determine ownership so the balloon stays ontop of the owning form if (m_fmShadow == null) { this.Owner = onForm; } else { m_fmShadow.Owner = onForm; } // remember the control's position and dimensions m_rtAnchor = new Rectangle(myPoint,mySize); Point ptA = m_rtAnchor.Location; Point ptC = ptA; // first, try for lower edge of the control as an anchor point ptA.Y += m_rtAnchor.Height; // calculate absolute position on the screen Point ptScreen = onForm.PointToScreen(ptA); // see if we can anchor below the control if (bCalcTailPos(ptScreen, true) == false) { // unable to anchor below, so anchor above ptScreen = onForm.PointToScreen(ptC); bCalcTailPos(ptScreen, false); } m_fmParent = onForm; // attach a callback so we know when the owner is moved. Oh the joys and advantages of delegates! m_evhMove = new System.EventHandler(this.Parent_Move); onForm.Move += m_evhMove; } // attach the balloon to a point on a form. for the balloon to auto-track any movement in the owning form, // we need to attach an event handler to the Move event on the owning form. Setting ownership ensure the // balloon is always shown on top of the owning form. In addition, a minimize action on the owning form will // force the balloon to minimize with it. public void setBalloonPosition(Form onForm, Point atPoint) { // to understand ownership, a balloon with a shadow has the shadow as the owner to ensure the balloon // is drawn directly on top of the shadow. Consequently when setting ownership to an attached point, // it is the shadow that gets attached to the owning form. But if no shadow exists, it is the Balloon // itself that must be attached if (m_fmShadow == null) { this.Owner = onForm; } else { m_fmShadow.Owner = onForm; } // calculate absolute position of the point m_rtAnchor = new Rectangle(atPoint, new Size(0, 0)); Point ptScreen = onForm.PointToScreen(m_rtAnchor.Location); // see if we can anchor below the control if (bCalcTailPos(ptScreen, true) == false) { // unable to anchor below, so anchor above ptScreen = onForm.PointToScreen(ptScreen); bCalcTailPos(ptScreen, false); } m_fmParent = onForm; // attach a callback so we know when the owner is moved. Oh the joys and advantages of delegates! m_evhMove = new System.EventHandler(this.Parent_Move); onForm.Move += m_evhMove; } /// /// UpdateBalloonPosition (add by lulianqi not change position with setBalloonPosition it will add EventHandler) /// /// Point public void UpdateBalloonPosition(Point atPoint) { // calculate absolute position of the point m_rtAnchor = new Rectangle(atPoint, new Size(0, 0)); Point ptScreen = m_fmParent.PointToScreen(m_rtAnchor.Location); // see if we can anchor below the control if (bCalcTailPos(ptScreen, true) == false) { // unable to anchor below, so anchor above ptScreen = m_fmParent.PointToScreen(ptScreen); bCalcTailPos(ptScreen, false); } } public void Parent_Move(object sender, System.EventArgs e) { if ((sender is Form) == false) { return; } // calculate absolute position on the screen and try for the lower edge first Point ptHigh = m_rtAnchor.Location; Point ptLow = ptHigh; ptLow.Y += m_rtAnchor.Height; Point ptScreen = ((Form)sender).PointToScreen(ptLow); // see if we can anchor below the control if (bCalcTailPos(ptScreen, true) == false) { // unable to anchor below, so anchor above ptScreen = ((Form)sender).PointToScreen(ptHigh); bCalcTailPos(ptScreen, false); } } // if a shadow window does not yet exist, create it private bool bMakeShadow() { // a shadow cannot have another shadow if (this.m_bIsShadow) { return false; } // only generate a shadow if required if (m_bHasShadow != true) { return false; } // no shadows in design mode if (DesignMode == true) { return false; } // create shadow if non exists if (m_fmShadow == null) { m_fmShadow = new CBalloon.CBalloonBase(); this.Owner = m_fmShadow; m_fmShadow.Width = this.Width; m_fmShadow.Height = this.Height; m_fmShadow.StartPosition = FormStartPosition.Manual; m_fmShadow.Location = new Point(this.Location.X + C_SHADOW, this.Location.Y + C_SHADOW); m_fmShadow.IsShadow = true; m_fmShadow.Opacity = 0.6; } return true; } private void DestroyShadow() { if (m_fmShadow != null) { // if the shadow has an owner, we need to attach the balloon to the owner and // sever existing owned form relationships if (m_fmShadow.Owner != null) { this.Owner = m_fmShadow.Owner; m_fmShadow.RemoveOwnedForm(this); this.Owner.RemoveOwnedForm(m_fmShadow); } m_fmShadow.Close(); m_fmShadow.Dispose(); m_fmShadow = null; } } // the shape of the form is maintained by reSizeMe() so the only function or reDrawMe() is to // paint the frame itself public void reDrawMe() { // shadow boxes don't have a frame if (m_bShowFrame) { // for no particular reason, I'm using a gradient brush from top-left to bottom-right... // to grab the User's attention a pulsing frame (variable luminence) works much better Graphics eg = Graphics.FromHwnd(this.Handle); // the bounding rectangle was calculated in reSizeMe() eg.RenderingOrigin = m_ptCenter; eg.FillRegion(new LinearGradientBrush(m_rtBalloonF, m_cTopLeft, m_cBotRite, 45, true), m_rInnerFrame); eg.Dispose(); } } /// /// The main entry point for the application. /// [STAThread] //static void Main() //{ // Application.Run(new CBalloonBase()); //} private void CBalloonBase_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { reDrawMe(); } private void CBalloonBase_Click(object sender, System.EventArgs e) { //if (false == this.m_bIsShadow) //{ // this.Close(); //} } private void CBalloonBase_Resize(object sender, System.EventArgs e) { reSizeMe(); } private void label1_Click(object sender, System.EventArgs e) { // do not allow a shadow box to open another box... //if (this.m_bIsShadow == false) //{ // if (this is CExample) // { // this.Close(); // } // else // { // CBalloon.Form3 aForm = new Form3(); // aForm.Show(); // } //} } private void CBalloonBase_VisibleChanged(object sender, System.EventArgs e) { if (!m_bHasShadow) { return; } if ((this.Visible == true) && (m_fmShadow != null)) { m_fmShadow.Show(); } //add by lulianqi when hide the base window the m_fmShadow is not hide else if ((this.Visible == false) && (m_fmShadow != null)) { m_fmShadow.Visible = false; } } private void CBalloonBase_Closing(object sender, System.ComponentModel.CancelEventArgs e) { #region remove any form-owner relationships and events, and close the shadow form if it exists // clean up owner-form relationships from the Balloon form if (this.Owner != null) { this.Owner.RemoveOwnedForm(this); this.Owner = null; } // clean up owner-form relationships from the Shadow form, then close the Shadow if (m_fmShadow != null) { if (m_fmShadow.Owner != null) { m_fmShadow.Owner.RemoveOwnedForm(m_fmShadow); m_fmShadow.Owner = null; } m_fmShadow.Close(); } // here we need to remove the event handler from the form with the anchor point if (m_fmParent != null) { m_fmParent.Move -= m_evhMove; m_fmParent = null; } #endregion } private void CBalloonBase_Move(object sender, System.EventArgs e) { if (m_fmShadow != null) { m_fmShadow.Location = new Point(this.Location.X + C_SHADOW, this.Location.Y + C_SHADOW); } } #region form properties public bool IsShadow { set { if (value == true) { if (m_bIsShadow == false) { this.ShowFrame = false; this.BackColor = Color.DarkGray; } } m_bIsShadow = value; } get { return m_bIsShadow; } } public bool HasShadow { set { m_bHasShadow = value; if (m_bHasShadow) { bMakeShadow(); } else { DestroyShadow(); } } get { return m_bHasShadow; } } public bool ShowFrame { set { if (m_bShowFrame != value) { m_bShowFrame = value; this.reDrawMe(); } } get { return m_bShowFrame; } } public sdSide tailSide { set { m_tipSide = value; reSizeMe(); if ((m_bHasShadow) && (this.m_fmShadow != null)) { m_fmShadow.tailSide = value; } } get { return m_tipSide; } } public int tailOffset { set { m_nTailOffset = value; reSizeMe(); if (this.m_fmShadow != null) { m_fmShadow.tailOffset = value; } } get { return m_nTailOffset; } } public alAlign tailAlign { set { m_tipAlign = value; // better method is to generate a resize event but its 3am and I'm tired reSizeMe(); if (this.m_fmShadow != null) { m_fmShadow.tailAlign = value; } } get { return m_tipAlign; } } // set the color gradient from the top-left of the frame public Color FrameTopLeft { set { m_cTopLeft = value; // better method is to generate a paint event but its 3am and I'm tired this.reDrawMe(); } get { return m_cTopLeft; } } // set the color gradient running to the bottom-left of the frame public Color FrameBottomRight { set { m_cBotRite = value; // better method is to generate a paint event but its 3am and I'm tired this.reDrawMe(); } get { return m_cBotRite; } } #endregion } } ================================================ FILE: FreeHttpControl/MyControl/CBalloonBase.resx ================================================ text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ================================================ FILE: FreeHttpControl/MyControl/EditListView.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class EditListView { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region 组件设计器生成的代码 /// /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditListView)); this.lv_dataList = new System.Windows.Forms.ListView(); this.columnHeader_data = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.pictureBox_add = new System.Windows.Forms.PictureBox(); this.pictureBox_remove = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_add)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_remove)).BeginInit(); this.SuspendLayout(); // // lv_dataList // this.lv_dataList.BackColor = System.Drawing.SystemColors.InactiveBorder; this.lv_dataList.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.lv_dataList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeader_data}); this.lv_dataList.Dock = System.Windows.Forms.DockStyle.Fill; this.lv_dataList.FullRowSelect = true; this.lv_dataList.LabelEdit = true; this.lv_dataList.Location = new System.Drawing.Point(0, 0); this.lv_dataList.Name = "lv_dataList"; this.lv_dataList.Size = new System.Drawing.Size(379, 134); this.lv_dataList.TabIndex = 49; this.lv_dataList.UseCompatibleStateImageBehavior = false; this.lv_dataList.View = System.Windows.Forms.View.Details; this.lv_dataList.DoubleClick += new System.EventHandler(this.lv_dataList_DoubleClick); // // columnHeader_data // this.columnHeader_data.Text = "column name"; this.columnHeader_data.Width = 375; // // pictureBox_add // this.pictureBox_add.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pictureBox_add.BackColor = System.Drawing.Color.Transparent; this.pictureBox_add.Cursor = System.Windows.Forms.Cursors.Hand; this.pictureBox_add.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox_add.Image"))); this.pictureBox_add.Location = new System.Drawing.Point(336, 1); this.pictureBox_add.Name = "pictureBox_add"; this.pictureBox_add.Size = new System.Drawing.Size(20, 20); this.pictureBox_add.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox_add.TabIndex = 51; this.pictureBox_add.TabStop = false; this.pictureBox_add.Click += new System.EventHandler(this.pictureBox_add_Click); this.pictureBox_add.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pictureBox_add.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // pictureBox_remove // this.pictureBox_remove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pictureBox_remove.BackColor = System.Drawing.Color.Transparent; this.pictureBox_remove.Cursor = System.Windows.Forms.Cursors.Hand; this.pictureBox_remove.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox_remove.Image"))); this.pictureBox_remove.Location = new System.Drawing.Point(356, 1); this.pictureBox_remove.Name = "pictureBox_remove"; this.pictureBox_remove.Size = new System.Drawing.Size(20, 20); this.pictureBox_remove.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox_remove.TabIndex = 50; this.pictureBox_remove.TabStop = false; this.pictureBox_remove.Click += new System.EventHandler(this.pictureBox_remove_Click); this.pictureBox_remove.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pictureBox_remove.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // EditListView // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.pictureBox_add); this.Controls.Add(this.pictureBox_remove); this.Controls.Add(this.lv_dataList); this.Name = "EditListView"; this.Size = new System.Drawing.Size(379, 134); this.Load += new System.EventHandler(this.EditListView_Load); this.Resize += new System.EventHandler(this.EditListView_Resize); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_add)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_remove)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pictureBox_add; private System.Windows.Forms.PictureBox pictureBox_remove; private System.Windows.Forms.ListView lv_dataList; private System.Windows.Forms.ColumnHeader columnHeader_data; } } ================================================ FILE: FreeHttpControl/MyControl/EditListView.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class EditListView : UserControl { public EditListView() { InitializeComponent(); columnHeader_data.Text = ColumnHeaderName; SplitStr=SplitStr==null?": ":SplitStr; } /// /// 编辑或添加时 key value 的默认分割 /// [DescriptionAttribute("编辑或添加时 key value 的默认分割")] public string SplitStr { get; set; } /// /// 是否以key value方式显示 /// [DescriptionAttribute("是否以key value方式显示")] public bool IsKeyValue { get; set; } /// /// List Item 的值是否保持唯一性 /// [DescriptionAttribute("编辑或添加时List Item 的值是否保持唯一性")] public bool IsItemUnique { get; set; } /// /// 可用于显示的列名 /// [DescriptionAttribute("可用于显示的列名")] public string ColumnHeaderName{ get; set; } private void EditListView_Load(object sender, EventArgs e) { columnHeader_data.Text = ColumnHeaderName; } public ListView ListDataView { get { return lv_dataList; } } //pictureBox change for all public void pictureBox_MouseMove(object sender, MouseEventArgs e) { ((PictureBox)sender).BackColor = Color.Honeydew; } //pictureBox change for all public void pictureBox_MouseLeave(object sender, EventArgs e) { ((PictureBox)sender).BackColor = Color.Transparent; } private void EditListView_Resize(object sender, EventArgs e) { columnHeader_data.Width = lv_dataList.Width; } private void pictureBox_add_Click(object sender, EventArgs e) { if(IsKeyValue) { EditKeyVaule f = new EditKeyVaule(lv_dataList, true,IsItemUnique, SplitStr); f.ShowDialog(); } else { RemoveHead f = new RemoveHead(lv_dataList, true, IsItemUnique); f.ShowDialog(); } } private void pictureBox_remove_Click(object sender, EventArgs e) { if (lv_dataList.SelectedItems.Count > 0) { int tempRemoveIndex = lv_dataList.SelectedItems.Count - 1; for (int i = tempRemoveIndex; i >= 0; i--) { lv_dataList.Items.Remove(lv_dataList.SelectedItems[i]); } } else if (lv_dataList.Items.Count>0) { if(MessageBox.Show("if you want remove all data","remove all",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK) { lv_dataList.Items.Clear(); } } else { MessageBox.Show("nothing to clear"); } } private void lv_dataList_DoubleClick(object sender, EventArgs e) { if (lv_dataList.SelectedItems.Count > 0) { if (IsKeyValue) { EditKeyVaule f = new EditKeyVaule(lv_dataList, false,IsItemUnique, SplitStr); f.ShowDialog(); } else { RemoveHead f = new RemoveHead(lv_dataList,IsItemUnique, false); f.ShowDialog(); } } } } } ================================================ FILE: FreeHttpControl/MyControl/EditListView.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 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 ================================================ FILE: FreeHttpControl/MyControl/ListViewExtended.cs ================================================ using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.ComponentModel; using System.Runtime.InteropServices; using System.Reflection; namespace FreeHttp.FreeHttpControl { public class ListViewExtended : ListView { private const int LVM_FIRST = 0x1000; // ListView messages private const int LVM_SETGROUPINFO = (LVM_FIRST + 147); // ListView messages Setinfo on Group private const int WM_LBUTTONUP = 0x0202; // Windows message left button private delegate void CallBackSetGroupState(ListViewGroup lstvwgrp, ListViewGroupState state); private delegate void CallbackSetGroupString(ListViewGroup lstvwgrp, string value); /// /// Sends the specified message to a window or windows. The SendMessage function calls the window procedure for the specified window and does not return until the window procedure has processed the message. /// To send a message and return immediately, use the SendMessageCallback or SendNotifyMessage function. To post a message to a thread's message queue and return immediately, use the PostMessage or PostThreadMessage function. /// /// /// [in] Handle to the window whose window procedure will receive the message. /// If this parameter is HWND_BROADCAST, the message is sent to all top-level windows in the system, including disabled or invisible unowned windows, overlapped windows, and pop-up windows; but the message is not sent to child windows. /// Microsoft Windows Vista and later. Message sending is subject to User Interface Privilege Isolation (UIPI). The thread of a process can send messages only to message queues of threads in processes of lesser or equal integrity level. /// /// [in] Specifies the message to be sent. /// [in] Specifies additional message-specific information. /// [in] Type of LVGROUP, Specifies additional message-specific information. /// /// Microsoft Windows Vista and later. When a message is blocked by UIPI the last error, retrieved with GetLastError, is set to 5 (access denied). /// Applications that need to communicate using HWND_BROADCAST should use the RegisterWindowMessage function to obtain a unique message for inter-application communication. /// The system only does marshalling for system messages (those in the range 0 to (WM_USER-1)). To send other messages (those >= WM_USER) to another process, you must do custom marshalling. /// If the specified window was created by the calling thread, the window procedure is called immediately as a subroutine. If the specified window was created by a different thread, the system switches to that thread and calls the appropriate window procedure. Messages sent between threads are processed only when the receiving thread executes message retrieval code. The sending thread is blocked until the receiving thread processes the message. However, the sending thread will process incoming nonqueued messages while waiting for its message to be processed. To prevent this, use SendMessageTimeout with SMTO_BLOCK set. For more information on nonqueued messages, see Nonqueued Messages. /// Windows 95/98/Me: SendMessageW is supported by the Microsoft Layer for Unicode (MSLU). To use this, you must add certain files to your application, as outlined in Microsoft Layer for Unicode on Windows 95/98/Me Systems. /// [DllImport("User32.dll"), Description("Sends the specified message to a window or windows. The SendMessage function calls the window procedure for the specified window and does not return until the window procedure has processed the message. To send a message and return immediately, use the SendMessageCallback or SendNotifyMessage function. To post a message to a thread's message queue and return immediately, use the PostMessage or PostThreadMessage function.")] private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, LVGROUP lParam); private static int? GetGroupID(ListViewGroup lstvwgrp) { int? rtnval = null; Type GrpTp = lstvwgrp.GetType(); if (GrpTp != null) { PropertyInfo pi = GrpTp.GetProperty("ID", BindingFlags.NonPublic | BindingFlags.Instance); if (pi != null) { object tmprtnval = pi.GetValue(lstvwgrp, null); if (tmprtnval != null) { rtnval = tmprtnval as int?; } } } return rtnval; } private static void setGrpState(ListViewGroup lstvwgrp, ListViewGroupState state) { if (Environment.OSVersion.Version.Major < 6) //Only Vista and forward allows collaps of ListViewGroups return; if (lstvwgrp == null || lstvwgrp.ListView == null) return; if (lstvwgrp.ListView.InvokeRequired) lstvwgrp.ListView.Invoke(new CallBackSetGroupState(setGrpState), lstvwgrp, state); else { int? GrpId = GetGroupID(lstvwgrp); int gIndex = lstvwgrp.ListView.Groups.IndexOf(lstvwgrp); LVGROUP group = new LVGROUP(); group.CbSize = Marshal.SizeOf(group); group.State = state; group.Mask = ListViewGroupMask.State; if (GrpId != null) { group.IGroupId = GrpId.Value; SendMessage(lstvwgrp.ListView.Handle, LVM_SETGROUPINFO, GrpId.Value, group); SendMessage(lstvwgrp.ListView.Handle, LVM_SETGROUPINFO, GrpId.Value, group); } else { group.IGroupId = gIndex; SendMessage(lstvwgrp.ListView.Handle, LVM_SETGROUPINFO, gIndex, group); SendMessage(lstvwgrp.ListView.Handle, LVM_SETGROUPINFO, gIndex, group); } lstvwgrp.ListView.Refresh(); } } private static void setGrpFooter(ListViewGroup lstvwgrp, string footer) { if (Environment.OSVersion.Version.Major < 6) //Only Vista and forward allows footer on ListViewGroups return; if (lstvwgrp == null || lstvwgrp.ListView == null) return; if (lstvwgrp.ListView.InvokeRequired) lstvwgrp.ListView.Invoke(new CallbackSetGroupString(setGrpFooter), lstvwgrp, footer); else { int? GrpId = GetGroupID(lstvwgrp); int gIndex = lstvwgrp.ListView.Groups.IndexOf(lstvwgrp); LVGROUP group = new LVGROUP(); group.CbSize = Marshal.SizeOf(group); group.PszFooter = footer; group.Mask = ListViewGroupMask.Footer; if (GrpId != null) { group.IGroupId = GrpId.Value; SendMessage(lstvwgrp.ListView.Handle, LVM_SETGROUPINFO, GrpId.Value, group); } else { group.IGroupId = gIndex; SendMessage(lstvwgrp.ListView.Handle, LVM_SETGROUPINFO, gIndex, group); } } } public void SetGroupState(ListViewGroupState state) { foreach (ListViewGroup lvg in this.Groups) setGrpState(lvg, state); } public void SetGroupState(ListViewGroupState state , ListViewGroup lvg) { setGrpState(lvg, state); } public void SetGroupFooter(ListViewGroup lvg, string footerText) { setGrpFooter(lvg, footerText); } protected override void WndProc(ref Message m) { if (m.Msg == WM_LBUTTONUP) base.DefWndProc(ref m); base.WndProc(ref m); } } /// /// LVGROUP StructureUsed to set and retrieve groups. /// /// /// LVGROUP myLVGROUP = new LVGROUP(); /// myLVGROUP.CbSize // is of managed type uint /// myLVGROUP.Mask // is of managed type uint /// myLVGROUP.PszHeader // is of managed type string /// myLVGROUP.CchHeader // is of managed type int /// myLVGROUP.PszFooter // is of managed type string /// myLVGROUP.CchFooter // is of managed type int /// myLVGROUP.IGroupId // is of managed type int /// myLVGROUP.StateMask // is of managed type uint /// myLVGROUP.State // is of managed type uint /// myLVGROUP.UAlign // is of managed type uint /// myLVGROUP.PszSubtitle // is of managed type IntPtr /// myLVGROUP.CchSubtitle // is of managed type uint /// myLVGROUP.PszTask // is of managed type string /// myLVGROUP.CchTask // is of managed type uint /// myLVGROUP.PszDescriptionTop // is of managed type string /// myLVGROUP.CchDescriptionTop // is of managed type uint /// myLVGROUP.PszDescriptionBottom // is of managed type string /// myLVGROUP.CchDescriptionBottom // is of managed type uint /// myLVGROUP.ITitleImage // is of managed type int /// myLVGROUP.IExtendedImage // is of managed type int /// myLVGROUP.IFirstItem // is of managed type int /// myLVGROUP.CItems // is of managed type IntPtr /// myLVGROUP.PszSubsetTitle // is of managed type IntPtr /// myLVGROUP.CchSubsetTitle // is of managed type IntPtr /// /// /// The LVGROUP structure was created by Paw Jershauge /// Created: Jan. 2008. /// The LVGROUP structure code is based on information from Microsoft's MSDN2 website. /// The structure is generated via an automated converter and is as is. /// The structure may or may not hold errors inside the code, so use at own risk. /// Reference url: http://msdn.microsoft.com/en-us/library/bb774769(VS.85).aspx /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode), Description("LVGROUP StructureUsed to set and retrieve groups.")] public struct LVGROUP { /// /// Size of this structure, in bytes. /// [Description("Size of this structure, in bytes.")] public int CbSize; /// /// Mask that specifies which members of the structure are valid input. One or more of the following values:LVGF_NONENo other items are valid. /// [Description("Mask that specifies which members of the structure are valid input. One or more of the following values:LVGF_NONE No other items are valid.")] public ListViewGroupMask Mask; /// /// Pointer to a null-terminated string that contains the header text when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the header text. /// [Description("Pointer to a null-terminated string that contains the header text when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the header text.")] [MarshalAs(UnmanagedType.LPWStr)] public string PszHeader; /// /// Size in TCHARs of the buffer pointed to by the pszHeader member. If the structure is not receiving information about a group, this member is ignored. /// [Description("Size in TCHARs of the buffer pointed to by the pszHeader member. If the structure is not receiving information about a group, this member is ignored.")] public int CchHeader; /// /// Pointer to a null-terminated string that contains the footer text when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the footer text. /// [Description("Pointer to a null-terminated string that contains the footer text when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the footer text.")] [MarshalAs(UnmanagedType.LPWStr)] public string PszFooter; /// /// Size in TCHARs of the buffer pointed to by the pszFooter member. If the structure is not receiving information about a group, this member is ignored. /// [Description("Size in TCHARs of the buffer pointed to by the pszFooter member. If the structure is not receiving information about a group, this member is ignored.")] public int CchFooter; /// /// ID of the group. /// [Description("ID of the group.")] public int IGroupId; /// /// Mask used with LVM_GETGROUPINFO (Microsoft Windows XP and Windows Vista) and LVM_SETGROUPINFO (Windows Vista only) to specify which flags in the state value are being retrieved or set. /// [Description("Mask used with LVM_GETGROUPINFO (Microsoft Windows XP and Windows Vista) and LVM_SETGROUPINFO (Windows Vista only) to specify which flags in the state value are being retrieved or set.")] public int StateMask; /// /// Flag that can have one of the following values:LVGS_NORMALGroups are expanded, the group name is displayed, and all items in the group are displayed. /// [Description("Flag that can have one of the following values:LVGS_NORMAL Groups are expanded, the group name is displayed, and all items in the group are displayed.")] public ListViewGroupState State; /// /// Indicates the alignment of the header or footer text for the group. It can have one or more of the following values. Use one of the header flags. Footer flags are optional. Windows XP: Footer flags are reserved.LVGA_FOOTER_CENTERReserved. /// [Description("Indicates the alignment of the header or footer text for the group. It can have one or more of the following values. Use one of the header flags. Footer flags are optional. Windows XP: Footer flags are reserved.LVGA_FOOTER_CENTERReserved.")] public uint UAlign; /// /// Windows Vista. Pointer to a null-terminated string that contains the subtitle text when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the subtitle text. This element is drawn under the header text. /// [Description("Windows Vista. Pointer to a null-terminated string that contains the subtitle text when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the subtitle text. This element is drawn under the header text.")] public IntPtr PszSubtitle; /// /// Windows Vista. Size, in TCHARs, of the buffer pointed to by the pszSubtitle member. If the structure is not receiving information about a group, this member is ignored. /// [Description("Windows Vista. Size, in TCHARs, of the buffer pointed to by the pszSubtitle member. If the structure is not receiving information about a group, this member is ignored.")] public uint CchSubtitle; /// /// Windows Vista. Pointer to a null-terminated string that contains the text for a task link when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the task text. This item is drawn right-aligned opposite the header text. When clicked by the user, the task link generates an LVN_LINKCLICK notification. /// [Description("Windows Vista. Pointer to a null-terminated string that contains the text for a task link when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the task text. This item is drawn right-aligned opposite the header text. When clicked by the user, the task link generates an LVN_LINKCLICK notification.")] [MarshalAs(UnmanagedType.LPWStr)] public string PszTask; /// /// Windows Vista. Size in TCHARs of the buffer pointed to by the pszTask member. If the structure is not receiving information about a group, this member is ignored. /// [Description("Windows Vista. Size in TCHARs of the buffer pointed to by the pszTask member. If the structure is not receiving information about a group, this member is ignored.")] public uint CchTask; /// /// Windows Vista. Pointer to a null-terminated string that contains the top description text when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the top description text. This item is drawn opposite the title image when there is a title image, no extended image, and uAlign==LVGA_HEADER_CENTER. /// [Description("Windows Vista. Pointer to a null-terminated string that contains the top description text when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the top description text. This item is drawn opposite the title image when there is a title image, no extended image, and uAlign==LVGA_HEADER_CENTER.")] [MarshalAs(UnmanagedType.LPWStr)] public string PszDescriptionTop; /// /// Windows Vista. Size in TCHARs of the buffer pointed to by the pszDescriptionTop member. If the structure is not receiving information about a group, this member is ignored. /// [Description("Windows Vista. Size in TCHARs of the buffer pointed to by the pszDescriptionTop member. If the structure is not receiving information about a group, this member is ignored.")] public uint CchDescriptionTop; /// /// Windows Vista. Pointer to a null-terminated string that contains the bottom description text when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the bottom description text. This item is drawn under the top description text when there is a title image, no extended image, and uAlign==LVGA_HEADER_CENTER. /// [Description("Windows Vista. Pointer to a null-terminated string that contains the bottom description text when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the bottom description text. This item is drawn under the top description text when there is a title image, no extended image, and uAlign==LVGA_HEADER_CENTER.")] [MarshalAs(UnmanagedType.LPWStr)] public string PszDescriptionBottom; /// /// Windows Vista. Size in TCHARs of the buffer pointed to by the pszDescriptionBottom member. If the structure is not receiving information about a group, this member is ignored. /// [Description("Windows Vista. Size in TCHARs of the buffer pointed to by the pszDescriptionBottom member. If the structure is not receiving information about a group, this member is ignored.")] public uint CchDescriptionBottom; /// /// Windows Vista. Index of the title image in the control imagelist. /// [Description("Windows Vista. Index of the title image in the control imagelist.")] public int ITitleImage; /// /// Windows Vista. Index of the extended image in the control imagelist. /// [Description("Windows Vista. Index of the extended image in the control imagelist.")] public int IExtendedImage; /// /// Windows Vista. Read-only. /// [Description("Windows Vista. Read-only.")] public int IFirstItem; /// /// Windows Vista. Read-only in non-owner data mode. /// [Description("Windows Vista. Read-only in non-owner data mode.")] public IntPtr CItems; /// /// Windows Vista. NULL if group is not a subset. Pointer to a null-terminated string that contains the subset title text when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the subset title text. /// [Description("Windows Vista. NULL if group is not a subset. Pointer to a null-terminated string that contains the subset title text when item information is being set. If group information is being retrieved, this member specifies the address of the buffer that receives the subset title text.")] public IntPtr PszSubsetTitle; /// /// Windows Vista. Size in TCHARs of the buffer pointed to by the pszSubsetTitle member. If the structure is not receiving information about a group, this member is ignored. /// [Description("Windows Vista. Size in TCHARs of the buffer pointed to by the pszSubsetTitle member. If the structure is not receiving information about a group, this member is ignored.")] public IntPtr CchSubsetTitle; } public enum ListViewGroupMask { None = 0x00000, Header = 0x00001, Footer = 0x00002, State = 0x00004, Align = 0x00008, GroupId = 0x00010, SubTitle = 0x00100, Task = 0x00200, DescriptionTop = 0x00400, DescriptionBottom = 0x00800, TitleImage = 0x01000, ExtendedImage = 0x02000, Items = 0x04000, Subset = 0x08000, SubsetItems = 0x10000 } public enum ListViewGroupState { /// /// Groups are expanded, the group name is displayed, and all items in the group are displayed. /// Normal = 0, /// /// The group is collapsed. /// Collapsed = 1, /// /// The group is hidden. /// Hidden = 2, /// /// Version 6.00 and Windows Vista. The group does not display a header. /// NoHeader = 4, /// /// Version 6.00 and Windows Vista. The group can be collapsed. /// Collapsible = 8, /// /// Version 6.00 and Windows Vista. The group has keyboard focus. /// Focused = 16, /// /// Version 6.00 and Windows Vista. The group is selected. /// Selected = 32, /// /// Version 6.00 and Windows Vista. The group displays only a portion of its items. /// SubSeted = 64, /// /// Version 6.00 and Windows Vista. The subset link of the group has keyboard focus. /// SubSetLinkFocused = 128, } } ================================================ FILE: FreeHttpControl/MyControl/MyEnableSwitch.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class MyEnableSwitch { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region 组件设计器生成的代码 /// /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MyEnableSwitch)); this.pb_switch = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.pb_switch)).BeginInit(); this.SuspendLayout(); // // pb_switch // this.pb_switch.BackColor = System.Drawing.Color.Transparent; this.pb_switch.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_switch.Dock = System.Windows.Forms.DockStyle.Fill; this.pb_switch.Image = ((System.Drawing.Image)(resources.GetObject("pb_switch.Image"))); this.pb_switch.Location = new System.Drawing.Point(0, 0); this.pb_switch.Name = "pb_switch"; this.pb_switch.Size = new System.Drawing.Size(36, 20); this.pb_switch.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_switch.TabIndex = 39; this.pb_switch.TabStop = false; this.pb_switch.Click += new System.EventHandler(this.pb_switch_Click); // // MyEnableSwitch // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.pb_switch); this.Name = "MyEnableSwitch"; this.Size = new System.Drawing.Size(36, 20); ((System.ComponentModel.ISupportInitialize)(this.pb_switch)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pb_switch; } } ================================================ FILE: FreeHttpControl/MyControl/MyEnableSwitch.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class MyEnableSwitch : UserControl { public class ChangeEnableEventArgs:EventArgs { public bool IsEnable{get; set;} public ChangeEnableEventArgs(bool isEnable) { IsEnable = isEnable; } } public MyEnableSwitch() { InitializeComponent(); myResources = new System.ComponentModel.ComponentResourceManager(typeof(MyEnableSwitch)); } System.ComponentModel.ComponentResourceManager myResources; private bool isEnable; public event EventHandler OnChangeEnable; [DescriptionAttribute("the TextBox that you want to binding")] /// /// get or set the switch status (set thie value will not call OnChangeEnable) /// public bool IsEnable { get { return isEnable; } set { isEnable = value; pb_switch.Image = isEnable ? ((Image)(myResources.GetObject("switch_on"))) : ((Image)(myResources.GetObject("switch_off"))); } } private void pb_switch_Click(object sender, EventArgs e) { IsEnable = !IsEnable; if(OnChangeEnable!=null) { this.OnChangeEnable(this, new ChangeEnableEventArgs(IsEnable)); } } } } ================================================ FILE: FreeHttpControl/MyControl/MyEnableSwitch.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 iVBORw0KGgoAAAANSUhEUgAAAEAAAAAtCAYAAAAeA21aAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC42/Ixj3wAABAZJREFUaEPtmttL VEEcx+1CkV0fjIpeIoqCLlCYUFJZBvUHWGpP0lMvvhTUQxFbIF2wtcx1V9d1yZdAfBCKkIrs9tDFoqei hHrJCkyNsItSbp/f+jtx1PW6O3Mk/MKXOWfOzHy/M+ecOTNzJm0KU5hCUqiqqkoPBoPZMMcmq6urt/n9 /jlqwx7Ky8sXhEKhYioeIXxE2AtjHrEHD82EJ2iUrFgsNk1tph41NTWrEEIv9MNlwBa/ofuCsB6ehWWc X4XXOW6F8XScd8JAZWXlSrWdPAKBwDwKvQT/OEI2iJ5U2Med3aRWhgXp1sJj5Hmp+X9Df11d3VxNMjEg voKC/rWwDVKJRsINamFckFcAz0Xkb9fyWqUOenl8wEgm/KIF2WDLWO72WBCJRObjPajlto+7XDLnkvGn FmCc6DURpqt8ykC5eVD6rO5wOLxbo0cGrZVDpl9ug4ZZ5fP5pqt8ysHnch0Sn6VOUjeNTgxaaQmJu9SY DTaotFFQ+a1QOvF2OvWlGj0UJLjnMmeUGHrGmGK2ShsHesdV+65GDQSPyiG3QcPsHvFOGAK68RvMq1Ck Uf3gHZzJhTY1Z4M+lbYKnoJM1X83oN/hQqHLnGl2JD1ASQLoN4gPnoIDGhVvgDsug0aJ1imV9QR42Kw+ muIRtbW1i4nocwyaJi2/Pi7sIfDxEfZFo9FFcnLQMWeatPp79eAp8HJZ/eTLid8xaIFX1IOn4Iu3V/1c kAa4oSfGSYsfUQ+egunyGvXTKA3Q4jZpkggWqgdPIYs66ueJfAHeDjZqiqOOxS0CP7KS9VoO3jgGTZPG 3qH6ngM/3+ErOXjuGDRNOp8C1fcUsl6gnp7KKyDrakPMmiBak7ITLHObNMwK9eApqPg+9VMq38QCl0Gj RHhSDYTgfutD4XA4vFF9eAZuxCe8yMrxwngEB7cdg6aJ+Om4qEfgid+iPvonQwIirM0H4KSYDtMA+RrV vyBCxAeXSdM8o9JWgW58KgzbhizEWl4SkyX3ZSptDWgmXhJzwFPwQA0aJ1rNJpfDBwPNEtVOvCgqkIVK jHU6Ji3wvEobBTpOH9c16mIsiXbRCNZ+jAz7OKYI1CUPnV6pE5/g7Ro9MugP9pDB5m/wivr6+lkqnzJQ 7lEoY5xu6pOr0WMDdyaLjB0wkWETfIzJ1SqfFCgrA0a03PH/HHUgGw0owNp0GcocvXSi4wTyZtCI5whl qivlTfz3uANngwSFWRsuQ/mZeZFXcSevxgy1khBUcDlpD5PnJuzR/KnZIOGGPg0h6Gw+sMWvVPAW4TXC AGEJYZTwIaGM6d1p5V1P7RaZwdBdGFkInYT3EfV6k5Rs1JINW8Wy0KE27QFxT7bJwWxPtslN4b9CWtpf q08OrPrJSeMAAAAASUVORK5CYII= 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 TkSuQmCC ================================================ FILE: FreeHttpControl/MyControl/MyEnabledPictureButton.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { class MyEnabledPictureButton : PictureBox { public MyEnabledPictureButton() { //this.MouseMove += pictureBox_MouseMove; //this.MouseLeave += pictureBox_MouseLeave; this.Cursor = Cursors.Hand; this.SizeMode = PictureBoxSizeMode.StretchImage; } /// /// 不可用时显示的图片 /// [DescriptionAttribute("")] public Image DisEnabledImage { get; set; } private Image enabledImage; /// /// 可用时显示的图片 /// [DescriptionAttribute("")] public Image EnabledImage { get { return enabledImage; } set { enabledImage =this.Image = value; } } public new bool Enabled { get { return base.Enabled; } set { base.Enabled = value; if(base.Enabled ) { if(EnabledImage!=null) { this.Image = EnabledImage; } this.Cursor = Cursors.Hand; } else { if (DisEnabledImage != null) { this.Image = DisEnabledImage; } this.Cursor = Cursors.No; } } } protected override void OnMouseMove(MouseEventArgs e) { pictureBox_MouseMove(this, e); } protected override void OnMouseLeave(EventArgs e) { pictureBox_MouseLeave(this, e); } //pictureBox change for all public void pictureBox_MouseMove(object sender, MouseEventArgs e) { ((PictureBox)sender).BackColor = Color.Honeydew; } //pictureBox change for all public void pictureBox_MouseLeave(object sender, EventArgs e) { ((PictureBox)sender).BackColor = Color.Transparent; } } } ================================================ FILE: FreeHttpControl/MyControl/MyListView.cs ================================================ using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { /// /// item 可拖放排序的ListView /// //public class MyListView : ListView public class MyListView : ListViewExtended { /// /// 维持group模式下的选中状态(在ListView动态编辑group过程中,会让选择状态异常) /// public class GroupSelectedItemsSataus { private ListView NowListView { get; set; } private List NowSelectedItems { get; set; } public GroupSelectedItemsSataus(ListView listView) { NowListView = listView; NowSelectedItems = new List(); } public void GetSnapshoot() { NowSelectedItems.Clear(); foreach(ListViewItem listViewItem in NowListView.SelectedItems) { NowSelectedItems.Add(listViewItem); } } public void ReCoverSnapshoot() { if(NowSelectedItems.Count>0) { foreach (ListViewItem listViewItem in NowListView.SelectedItems) { if (NowSelectedItems.Contains(listViewItem)) { NowSelectedItems.Remove(listViewItem); } else { listViewItem.Selected = false; } } foreach (ListViewItem listViewItem in NowSelectedItems) { listViewItem.Selected = true; } } NowSelectedItems.Clear(); } } private const int WM_LBUTTONDBLCLK = 0x0203; //左键双击 private int moveItemIndex = -1; //当前正在被移动的项 private int scrollDecelerateFlag = 25; //自动滚动缓速标识 public GroupSelectedItemsSataus GroupSelectedSataus { get; private set; } /// /// this ListView disable double click to check the checkbox /// enable DoubleBuffer /// implement items drag in detail mode /// public MyListView() : base() { InitializeComponent(); this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); UpdateStyles(); GroupSelectedSataus = new GroupSelectedItemsSataus(this); } /// /// Drag Start (开始拖放/拖入) /// public event EventHandler OnItemDragSortStart; /// /// Drag End (完成拖放/脱出) /// public event EventHandler OnItemDragSortEnd; protected override void WndProc(ref Message m) { if (m.Msg == WM_LBUTTONDBLCLK) { Point p = PointToClient(new Point(Cursor.Position.X, Cursor.Position.Y)); ListViewItem lvi = GetItemAt(p.X, p.Y); if (lvi != null) lvi.Selected = true; OnDoubleClick(new EventArgs()); } else base.WndProc(ref m); } private void InitializeComponent() { this.SuspendLayout(); // // MyListView // this.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.MyListView_ItemDrag); this.DragDrop += new System.Windows.Forms.DragEventHandler(this.MyListView_DragDrop); this.DragEnter += new System.Windows.Forms.DragEventHandler(this.MyListView_DragEnter); this.DragOver += new System.Windows.Forms.DragEventHandler(this.MyListView_DragOver); this.DragLeave += new System.EventHandler(this.MyListView_DragLeave); this.ResumeLayout(false); } /// /// is your item above your move items (just like AppearsAfterItem) [if you want enable drag just set ListView AllowDrop is true] /// /// you now item index /// is above item private bool AppearAboveItem(int nowIndex) { if (nowIndex < moveItemIndex) { return true; } return false; } /// /// /// /// /// private void MyListView_ItemDrag(object sender, ItemDragEventArgs e) { if (this.SelectedItems!=null && this.SelectedItems.Count>0) { GroupSelectedSataus.GetSnapshoot(); OnItemDragSortStart?.Invoke(sender, e); GroupSelectedSataus.ReCoverSnapshoot(); moveItemIndex = this.SelectedItems[0].Index; this.DoDragDrop(this.SelectedItems, DragDropEffects.Move); } } /// /// drag complete /// /// /// private void MyListView_DragDrop(object sender, DragEventArgs e) { int targetIndex = this.InsertionMark.Index; if (targetIndex == -1) { return; } SelectedListViewItemCollection draggedItems =(SelectedListViewItemCollection)e.Data.GetData(typeof(SelectedListViewItemCollection)); if (draggedItems == null || draggedItems.Count == 0 || draggedItems[0].ListView != this) { this.InsertionMark.Index = -1; return; } foreach (ListViewItem draggedItem in draggedItems) { this.Items.Remove(draggedItem); this.Items.Insert(targetIndex, draggedItem); if (AppearAboveItem(targetIndex)) { targetIndex++; } } OnItemDragSortEnd?.Invoke(sender, e); } private void MyListView_DragEnter(object sender, DragEventArgs e) { GroupSelectedSataus.GetSnapshoot(); OnItemDragSortStart?.Invoke(sender, null); GroupSelectedSataus.ReCoverSnapshoot(); SelectedListViewItemCollection draggedItems = (SelectedListViewItemCollection)e.Data.GetData(typeof(SelectedListViewItemCollection)); e.Effect = (draggedItems == null || draggedItems.Count == 0 || draggedItems[0].ListView != this) ? DragDropEffects.None : e.AllowedEffect; } private void MyListView_DragLeave(object sender, EventArgs e) { this.InsertionMark.Index = -1; OnItemDragSortEnd?.Invoke(sender, null); } /// /// drag over the contor boundary /// /// /// private void MyListView_DragOver(object sender, DragEventArgs e) { System.Diagnostics.Debug.WriteLine($"--------------------------{DateTime.Now.Millisecond}[{e.X},{e.Y}]MyListView_DragOver--------------------"); Point targetPoint = this.PointToClient(new Point(e.X, e.Y)); System.Diagnostics.Debug.WriteLine($"--------------------------[{targetPoint.X},{targetPoint.Y},{this.Height}]--------------------"); int targetIndex = this.InsertionMark.NearestIndex(targetPoint); System.Diagnostics.Debug.WriteLine($"--------------------------[{targetIndex}]--------------------"); //System.Diagnostics.Debug.WriteLine(targetIndex.ToString() + this.InsertionMark.AppearsAfterItem.ToString()); if (targetIndex > -1) { this.InsertionMark.Color = Color.PowderBlue; } //Rectangle itemBounds = myListView.GetItemRect(targetIndex); //myListView.InsertionMark.AppearsAfterItem = (targetPoint.X > itemBounds.Left + (itemBounds.Width / 2)); this.InsertionMark.AppearsAfterItem = (!AppearAboveItem(targetIndex)); this.InsertionMark.Index = targetIndex; //自动滚动 if(targetIndex==-1) { targetIndex = moveItemIndex; } if (targetPoint.Y < 30 && targetIndex > 0) { if(scrollDecelerateFlag%5==0) this.EnsureVisible(targetIndex - 1); if (scrollDecelerateFlag > 0) scrollDecelerateFlag--; } else if (targetPoint.Y > this.Height - 15 && targetIndex < this.Items.Count - 1) { if (scrollDecelerateFlag % 5 == 0) this.EnsureVisible(targetIndex + 1); if (scrollDecelerateFlag > 0) scrollDecelerateFlag--; } else { scrollDecelerateFlag = 25; } } } } ================================================ FILE: FreeHttpControl/MyControl/MyListView.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 False ================================================ FILE: FreeHttpControl/MyControl/MyPanel.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.FreeHttpControl { class MyPanel : System.Windows.Forms.Panel { public MyPanel() { //this.SetStyle(System.Windows.Forms.ControlStyles.UserPaint |System.Windows.Forms.ControlStyles.AllPaintingInWmPaint |System.Windows.Forms.ControlStyles.OptimizedDoubleBuffer,true); this.SetStyle(System.Windows.Forms.ControlStyles.DoubleBuffer | System.Windows.Forms.ControlStyles.OptimizedDoubleBuffer | System.Windows.Forms.ControlStyles.AllPaintingInWmPaint, true); UpdateStyles(); } } } ================================================ FILE: FreeHttpControl/MyControl/MySwitchPictureButton.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { class MySwitchPictureButton : PictureBox { public MySwitchPictureButton() { this.Cursor = Cursors.Hand; this.SizeMode = PictureBoxSizeMode.StretchImage; //if(IsAutoChangeSwitchState) //{ // this.Click += (sender, e) => { SwitchState = !SwitchState; }; //} } [DescriptionAttribute("Is auto change switchState when click")] public bool IsAutoChangeSwitchState { get; set; } = false; /// /// 备用状态显示的图片 /// [DescriptionAttribute("Image when switchState is false")] public Image SwitchOffImage { get; set; } private Image switchOnImage; /// /// 主要状态显示的图片 /// [DescriptionAttribute("Image when switchState is true")] public Image SwitchOnImage { get { return switchOnImage; } set { switchOnImage = this.switchOnImage = value; } } private bool switchState = true; public bool SwitchState { get { return switchState; } set { switchState = value; if(switchState) { if(SwitchOnImage!=null) { this.Image = SwitchOnImage; } } else { if (SwitchOffImage != null) { this.Image = SwitchOffImage; } } } } protected override void OnClick(EventArgs e) { if (IsAutoChangeSwitchState) { SwitchState = !SwitchState; } base.OnClick(e); //else //{ //} } protected override void OnMouseMove(MouseEventArgs e) { pictureBox_MouseMove(this, e); } protected override void OnMouseLeave(EventArgs e) { pictureBox_MouseLeave(this, e); } //pictureBox change for all public void pictureBox_MouseMove(object sender, MouseEventArgs e) { ((PictureBox)sender).BackColor = Color.Honeydew; } //pictureBox change for all public void pictureBox_MouseLeave(object sender, EventArgs e) { ((PictureBox)sender).BackColor = Color.Transparent; } } } ================================================ FILE: FreeHttpControl/MyControl/RawRequestEdit.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class RawRequestEdit { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region 组件设计器生成的代码 /// /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RawRequestEdit)); this.rtb_request = new System.Windows.Forms.RichTextBox(); this.pictureBox_changeMode = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_changeMode)).BeginInit(); this.SuspendLayout(); // // rtb_request // this.rtb_request.Dock = System.Windows.Forms.DockStyle.Fill; this.rtb_request.Location = new System.Drawing.Point(0, 0); this.rtb_request.Name = "rtb_request"; this.rtb_request.Size = new System.Drawing.Size(511, 209); this.rtb_request.TabIndex = 0; this.rtb_request.Text = ""; // // pictureBox_changeMode // this.pictureBox_changeMode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pictureBox_changeMode.BackColor = System.Drawing.Color.Transparent; this.pictureBox_changeMode.Cursor = System.Windows.Forms.Cursors.Hand; this.pictureBox_changeMode.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox_changeMode.Image"))); this.pictureBox_changeMode.Location = new System.Drawing.Point(485, 3); this.pictureBox_changeMode.Name = "pictureBox_changeMode"; this.pictureBox_changeMode.Size = new System.Drawing.Size(23, 22); this.pictureBox_changeMode.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pictureBox_changeMode.TabIndex = 39; this.pictureBox_changeMode.TabStop = false; this.pictureBox_changeMode.Click += new System.EventHandler(this.pictureBox_changeMode_Click); this.pictureBox_changeMode.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pictureBox_changeMode.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // RawRequestEdit // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.pictureBox_changeMode); this.Controls.Add(this.rtb_request); this.Name = "RawRequestEdit"; this.Size = new System.Drawing.Size(511, 209); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_changeMode)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.RichTextBox rtb_request; private System.Windows.Forms.PictureBox pictureBox_changeMode; } } ================================================ FILE: FreeHttpControl/MyControl/RawRequestEdit.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using FreeHttp.HttpHelper; namespace FreeHttp.FreeHttpControl { public partial class RawRequestEdit : UserControl { public RawRequestEdit() { InitializeComponent(); } public event EventHandler OnRawRequestEditClose; //pictureBox change for all public void pictureBox_MouseMove(object sender, MouseEventArgs e) { ((PictureBox)sender).BackColor = Color.Honeydew; } //pictureBox change for all public void pictureBox_MouseLeave(object sender, EventArgs e) { ((PictureBox)sender).BackColor = Color.Transparent; } public void SetText(string mes) { rtb_request.Text = mes; } public HttpRequest GetHttpRequest() { return HttpRequest.GetHttpRequest(rtb_request.Text.Replace("\n", "\r\n")); } private void pictureBox_changeMode_Click(object sender, EventArgs e) { this.Visible = false; if(OnRawRequestEditClose!=null) { this.OnRawRequestEditClose(this, null); } } } } ================================================ FILE: FreeHttpControl/MyControl/RawRequestEdit.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAOnSURBVHhe7ZrPaxNBFMcDKihtsj8UT+IvVEQQQUVBPHkQ8eAPFJWC3vSif4PVP8Aq7c5uIoJQ EcFfJw+ih949SBGUdmY3KVZpLajVGlQqxjfpM0zWiQ3ZbXf2xwceSWceL+/7ZqY7s7u5jIyMjIyYodvs mmmzmmHTjwbx9mNzOtBsupGLF6xasOhe7E4BZKrbtOnXpiIQOqNZbCd6JB/TYqcMm/0WiwB/T6eqCIbj ngHRv/xFMAa87eiSfHTHPS4pwqd8qbIVXZKPtAiETWVFgCIUiLsJXZJPvQiEzopFMAmb0J3KenQJwO3K cth09ECV78DnMFx2vjX9kMpG2HigIhiWd5gHkQaPicFyGMtb71aipPYxHdYrCxhHg+3zZZTVHlC1m7JA 8TX3AkqbH4O4lyRBvoNd163yOnRTjsKtcRMG7pUvb25Pc/drS9BtHgYnu/gpSwwA/13Lql9SWoon9Fmu VFuGbvOjO+ysL0jV7GdrsFtJQhPPgUvdXTEIzIZ+7FKSUMVz4Kg5IgYqOOU92KUcRsnTQhXPgRkwLQbL XaktxS6lqIu32UsxV24wY590LJ7jD4jNSvFf8UEHzB8Um9UBBMIUf+HPMxTxHH9gbFaGQtHb7M8xNPEc f3BsVgcQCtP/7d/8QhXPEcVzw2al4Kc7fk6BQlxsf4fXJnEowILSdPSF79gcGzSHnpjby9ARjbCT2Nw+ 9QCEvuHGv2NzbGgeQPoem9NDQzwaNqeHrACLWQDddo/BpWgI1tqjfGl0FTZHyqIVAB9NNZ7PGYQWsStS RPHcsDlc/OLnjD7H7khpzmkBCiAVz58TEHcfukTH4GSXL68Z7AkHnbjn/OINwj5rtrsLXSJFK3q7xdxg TzCKXcGRiQf7YBbZNnSJHJiFN8T84KB0D7uCIRUPuyxtYGwDukSOUfLWwoh/EXPkN3ixu3Pk056W+Q+i S+TkLW8LjHZFzLF+jukbX4EundFi2r/udtzV6BIp/CENCO2DnPhDm0aOPGc4CB1Et86A9XReIj4e5rBe lNEZMJ16pIHjYVdRRufAyDduOcXGYM3zR/koIRgQbEL6IwoZDNI0zNRh+OQvbfTwlzgw/eDA+j/tX//8 9RPdZkfQJfm0uPzNQnEOoUvykRbBpj+zIkARNMc9gC7JR74c2I+sCFCEVL2vLysCWDVVRZDfDWJVvVje gS7Jp8VdocfYnQ7+LQJ9iF3pQbfYUSjCEGydH6hyRM7IyMjIaJtc7g+/EGq5A+8/BAAAAABJRU5ErkJg gg== ================================================ FILE: FreeHttpControl/MyControl/RawResponseEdit.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using FreeHttp.HttpHelper; using FreeHttp.AutoTest.RunTimeStaticData; namespace FreeHttp.FreeHttpControl { public partial class RawResponseEdit : UserControl { public RawResponseEdit() { InitializeComponent(); ParameterDataToolStripMenuItem = useParameterDataToolStripMenuItem; ContentLengthToolStripMenuItem = antoContentLengthToolStripMenuItem; } Dictionary responseLineDc; private ToolStripMenuItem ParameterDataToolStripMenuItem ; private ToolStripMenuItem ContentLengthToolStripMenuItem; HttpResponse httpResponse; public event EventHandler OnRawResponseEditClose; public event EventHandler OnRawResponseEnableChange; public bool IsDirectRespons { get { return ck_directResponse.Checked; } set { ck_directResponse.Checked = value; } } public bool IsUseParameterData { //get { return useParameterDataToolStripMenuItem.Checked; } //set { useParameterDataToolStripMenuItem.Checked = value; } get { return ParameterDataToolStripMenuItem.Checked; } set { ParameterDataToolStripMenuItem.Checked = value; } } public HttpResponse RawResponse { get { return httpResponse; } } private void RawResponseEdit_Load(object sender, EventArgs e) { initializeResponseLineDc(out responseLineDc); foreach(var tempKey in responseLineDc) { cb_responseLine.Items.Add(tempKey.Key); } cb_responseLine.SelectedIndex = 0; MyControlHelper.SetRichTextBoxDropString(rtb_rawResponse); //rtb_rawResponse.AllowDrop = true; //rtb_rawResponse.DragEnter += rtb_rawResponse_DragEnter; //rtb_rawResponse.DragDrop += rtb_rawResponse_DragDrop; } void rtb_rawResponse_DragDrop(object sender, DragEventArgs e) { string tempText = (string)e.Data.GetData(typeof(string)); if(tempText==null) { return; } int selectionStart = rtb_rawResponse.SelectionStart; rtb_rawResponse.Text = rtb_rawResponse.Text.Insert(selectionStart, tempText); rtb_rawResponse.Select(selectionStart, tempText.Length); } void rtb_rawResponse_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetData(typeof(string)) == null) { e.Effect = DragDropEffects.None; } } private void initializeResponseLineDc(out Dictionary rdc) { rdc = new Dictionary(); rdc.Add("Please select template", "edit raw response here"); rdc.Add("HTTP/1.1 200 OK", "HTTP/1.1 200 OK\r\nFiddlerTemplate: True\r\nDate: Fri, 25 Jan 2013 16:49:29 GMT\r\nContent-Length: 51\r\n\r\nThis is a simple Fiddler-returned HTML page."); rdc.Add("HTTP/1.1 204 No Content", "HTTP/1.1 204 No Content\r\nFiddlerTemplate: True\r\nDate: Fri, 25 Jan 2013 16:49:29 GMT\r\nContent-Length: 0\r\n\r\n"); rdc.Add("HTTP/1.1 302 Redirect", "HTTP/1.1 302 Redirect\r\nFiddlerTemplate: True\r\nDate: Fri, 25 Jan 2013 16:49:29 GMT\r\nLocation: http://www.fiddler2.com/sandbox/FormAndCookie.asp\r\nContent-Length: 0\r\n\r\n"); rdc.Add("HTTP/1.1 303 Redirect Using GET", "HTTP/1.1 303 Redirect Using GET\r\nFiddlerTemplate: True\r\nDate: Fri, 25 Jan 2013 16:49:29 GMT\r\nLocation: http://www.fiddler2.com/sandbox/FormAndCookie.asp\r\nContent-Length: 0\r\n\r\n"); rdc.Add("HTTP/1.1 304 Not Modified", "HTTP/1.1 304 Not Modified\r\nFiddlerTemplate: True\r\nDate: Fri, 25 Jan 2013 16:49:29 GMT\r\nContent-Length: 0\r\n\r\n"); rdc.Add("HTTP/1.1 307 Redirect using same Method", "HTTP/1.1 307 Redirect using same Method\r\nFiddlerTemplate: True\r\nDate: Fri, 25 Jan 2013 16:49:29 GMT\r\nLocation: http://www.fiddler2.com/sandbox/FormAndCookie.asp\r\nContent-Length: 0\r\n\r\n"); rdc.Add("HTTP/1.1 401 Authentication Required", "HTTP/1.1 401 Authentication Required\r\nFiddlerTemplate: True\r\nDate: Fri, 25 Jan 2013 16:49:29 GMT\r\nWWW-Authenticate: Basic realm=\"Fiddler\"\r\nContent-Type: text/html\r\nContent-Length: 520\r\n\r\nFiddler: HTTP/401 Basic Server Auth Required."); rdc.Add("HTTP/1.1 403 Access Denied", "HTTP/1.1 403 Access Denied\r\nFiddlerTemplate: True\r\nDate: Fri, 25 Jan 2013 16:49:29 GMT\r\nContent-Length: 520\r\n\r\nFiddler: HTTP/403 Access Denied."); rdc.Add("HTTP/1.1 404 Not Found", "HTTP/1.1 404 Not Found\r\nFiddlerTemplate: True\r\nDate: Fri, 25 Jan 2013 16:49:29 GMT\r\nContent-Type: text/html\r\nContent-Length: 520\r\n\r\nFiddler: HTTP/404 Not Found"); rdc.Add("HTTP/1.1 407 Proxy Auth Required", "HTTP/1.1 407 Proxy Auth Required\r\nFiddlerTemplate: True\r\nDate: Fri, 25 Jan 2013 16:49:29 GMT\r\nProxy-Authenticate: Basic realm=\"Fiddler (just hit Ok)\"\r\nContent-Type: text/html\r\nContent-Length: 520\r\n\r\nFiddler: HTTP/407 Proxy Auth Required. "); rdc.Add("HTTP/1.1 502 Unreachable Server", "HTTP/1.1 502 Unreachable Server\r\nDate: Fri, 25 Jan 2013 16:49:29 GMT\r\nFiddlerTemplate: True\r\nContent-Type: text/html\r\nContent-Length: 520\r\n\r\nFiddler: HTTP/502 unreachable server."); } private void RawResponseEdit_Resize(object sender, EventArgs e) { rtb_rawResponse.Height = this.Height - 25; } private void cb_responseLine_SelectedIndexChanged(object sender, EventArgs e) { rtb_rawResponse.Text = responseLineDc[cb_responseLine.Text]; } private void contextMenuStrip_forRtbResponse_Opening(object sender, CancelEventArgs e) { ((ContextMenuStrip)sender).Tag = ((ContextMenuStrip)sender).SourceControl; } private void addFileToolStripMenuItem_Click(object sender, EventArgs e) { if (openFileDialog_responseFile.ShowDialog() == DialogResult.OK) { string tempPath = openFileDialog_responseFile.FileName; int tempIndex = rtb_rawResponse.Text.IndexOf("<>"); if (tempIndex >= 0) { rtb_rawResponse.Text=rtb_rawResponse.Text.Remove(tempIndex); } if (!rtb_rawResponse.Text.EndsWith("\n")) { rtb_rawResponse.AppendText("\n"); } rtb_rawResponse.AppendText(string.Format("<>{0}", tempPath)); } } private void antoContentLengthToolStripMenuItem_Click(object sender, EventArgs e) { antoContentLengthToolStripMenuItem.Checked = !antoContentLengthToolStripMenuItem.Checked; } private void useParameterDataToolStripMenuItem_Click(object sender, EventArgs e) { useParameterDataToolStripMenuItem.Checked = !useParameterDataToolStripMenuItem.Checked; } public void SetText(string mes) { rtb_rawResponse.Clear(); if(mes!=null) { rtb_rawResponse.Text = mes; } } public void ClearInfo() { rtb_rawResponse.Clear(); IsDirectRespons = false; IsUseParameterData = false; if (cb_responseLine.Items.Count>0) { cb_responseLine.SelectedIndex = 0; } } public bool SetContextMenuStrip(ContextMenuStrip yourContextMenuStrip) { if (yourContextMenuStrip != null && yourContextMenuStrip.Items.Count>3) { //ToolStripMenuItem tempParameterDataMenuItem = yourContextMenuStrip.Items[4] as ToolStripMenuItem; ToolStripMenuItem tempAutoContentLengthMenuItem = yourContextMenuStrip.Items[3] as ToolStripMenuItem; //if (tempParameterDataMenuItem != null && tempAutoContentLengthMenuItem!=null) if (tempAutoContentLengthMenuItem != null) { rtb_rawResponse.ContextMenuStrip = yourContextMenuStrip; //ParameterDataToolStripMenuItem = tempParameterDataMenuItem; ContentLengthToolStripMenuItem = tempAutoContentLengthMenuItem; return true; } } return false; } public ParameterHttpResponse GetHttpResponse(ActuatorStaticDataCollection yourActuatorStaticDataCollection) { ParameterHttpResponse nowHttpResponse = ParameterHttpResponse.GetHttpResponse(rtb_rawResponse.Text.Replace("\n", "\r\n"), IsUseParameterData, yourActuatorStaticDataCollection); if (ContentLengthToolStripMenuItem.Checked) { nowHttpResponse.SetAutoContentLength(); } return nowHttpResponse; } } } ================================================ FILE: FreeHttpControl/MyControl/RawResponseEdit.designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class RawResponseEdit { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region 组件设计器生成的代码 /// /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RawResponseEdit)); this.cb_responseLine = new System.Windows.Forms.ComboBox(); this.rtb_rawResponse = new System.Windows.Forms.RichTextBox(); this.contextMenuStrip_forRtbResponse = new System.Windows.Forms.ContextMenuStrip(this.components); this.addFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.antoContentLengthToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.useParameterDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.openFileDialog_responseFile = new System.Windows.Forms.OpenFileDialog(); this.ck_directResponse = new System.Windows.Forms.CheckBox(); this.toolTip_RawResponseEdit = new System.Windows.Forms.ToolTip(this.components); this.contextMenuStrip_forRtbResponse.SuspendLayout(); this.SuspendLayout(); // // cb_responseLine // this.cb_responseLine.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cb_responseLine.FormattingEnabled = true; this.cb_responseLine.Location = new System.Drawing.Point(3, 3); this.cb_responseLine.Name = "cb_responseLine"; this.cb_responseLine.Size = new System.Drawing.Size(329, 20); this.cb_responseLine.TabIndex = 0; this.toolTip_RawResponseEdit.SetToolTip(this.cb_responseLine, "you can select http response template here"); this.cb_responseLine.SelectedIndexChanged += new System.EventHandler(this.cb_responseLine_SelectedIndexChanged); // // rtb_rawResponse // this.rtb_rawResponse.ContextMenuStrip = this.contextMenuStrip_forRtbResponse; this.rtb_rawResponse.DetectUrls = false; this.rtb_rawResponse.Dock = System.Windows.Forms.DockStyle.Bottom; this.rtb_rawResponse.Location = new System.Drawing.Point(0, 25); this.rtb_rawResponse.Name = "rtb_rawResponse"; this.rtb_rawResponse.Size = new System.Drawing.Size(550, 176); this.rtb_rawResponse.TabIndex = 1; this.rtb_rawResponse.Text = ""; // // contextMenuStrip_forRtbResponse // this.contextMenuStrip_forRtbResponse.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.addFileToolStripMenuItem, this.antoContentLengthToolStripMenuItem, this.useParameterDataToolStripMenuItem}); this.contextMenuStrip_forRtbResponse.Name = "contextMenuStrip_forRtbResponse"; this.contextMenuStrip_forRtbResponse.Size = new System.Drawing.Size(196, 70); this.contextMenuStrip_forRtbResponse.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip_forRtbResponse_Opening); // // addFileToolStripMenuItem // this.addFileToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("addFileToolStripMenuItem.Image"))); this.addFileToolStripMenuItem.Name = "addFileToolStripMenuItem"; this.addFileToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.addFileToolStripMenuItem.Text = "add file"; this.addFileToolStripMenuItem.Click += new System.EventHandler(this.addFileToolStripMenuItem_Click); // // antoContentLengthToolStripMenuItem // this.antoContentLengthToolStripMenuItem.Name = "antoContentLengthToolStripMenuItem"; this.antoContentLengthToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.antoContentLengthToolStripMenuItem.Text = "anto Content-Length"; this.antoContentLengthToolStripMenuItem.Click += new System.EventHandler(this.antoContentLengthToolStripMenuItem_Click); // // useParameterDataToolStripMenuItem // this.useParameterDataToolStripMenuItem.Name = "useParameterDataToolStripMenuItem"; this.useParameterDataToolStripMenuItem.Size = new System.Drawing.Size(195, 22); this.useParameterDataToolStripMenuItem.Text = "use Parameter Data"; this.useParameterDataToolStripMenuItem.Click += new System.EventHandler(this.useParameterDataToolStripMenuItem_Click); // // openFileDialog_responseFile // this.openFileDialog_responseFile.FileName = "openFileDialog"; // // ck_directResponse // this.ck_directResponse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.ck_directResponse.Location = new System.Drawing.Point(433, 5); this.ck_directResponse.Name = "ck_directResponse"; this.ck_directResponse.Size = new System.Drawing.Size(114, 16); this.ck_directResponse.TabIndex = 39; this.ck_directResponse.Text = "Response Direct"; this.toolTip_RawResponseEdit.SetToolTip(this.ck_directResponse, "not send the request to the real sever \r\nit will direct return your response"); this.ck_directResponse.UseVisualStyleBackColor = true; // // RawResponseEdit // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.ck_directResponse); this.Controls.Add(this.rtb_rawResponse); this.Controls.Add(this.cb_responseLine); this.Name = "RawResponseEdit"; this.Size = new System.Drawing.Size(550, 201); this.Load += new System.EventHandler(this.RawResponseEdit_Load); this.Resize += new System.EventHandler(this.RawResponseEdit_Resize); this.contextMenuStrip_forRtbResponse.ResumeLayout(false); this.ResumeLayout(false); } #endregion private System.Windows.Forms.ComboBox cb_responseLine; private System.Windows.Forms.RichTextBox rtb_rawResponse; private System.Windows.Forms.ContextMenuStrip contextMenuStrip_forRtbResponse; private System.Windows.Forms.ToolStripMenuItem addFileToolStripMenuItem; private System.Windows.Forms.OpenFileDialog openFileDialog_responseFile; private System.Windows.Forms.CheckBox ck_directResponse; private System.Windows.Forms.ToolTip toolTip_RawResponseEdit; private System.Windows.Forms.ToolStripMenuItem antoContentLengthToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem useParameterDataToolStripMenuItem; } } ================================================ FILE: FreeHttpControl/MyControl/RawResponseEdit.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 494, 17 17, 17 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 a8yb9z+yGKdx213yIgAAAABJRU5ErkJggg== 274, 17 494, 17 ================================================ FILE: FreeHttpControl/MyControl/TextBoxEditer.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class TextBoxEditer { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region 组件设计器生成的代码 /// /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// private void InitializeComponent() { this.pb_editTextBox = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.pb_editTextBox)).BeginInit(); this.SuspendLayout(); // // pb_editTextBox // this.pb_editTextBox.BackColor = System.Drawing.Color.Transparent; this.pb_editTextBox.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_editTextBox.Dock = System.Windows.Forms.DockStyle.Fill; this.pb_editTextBox.Image = global::FreeHttp.Properties.Resources.zoombig; this.pb_editTextBox.Location = new System.Drawing.Point(0, 0); this.pb_editTextBox.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); this.pb_editTextBox.Name = "pb_editTextBox"; this.pb_editTextBox.Size = new System.Drawing.Size(39, 37); this.pb_editTextBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_editTextBox.TabIndex = 40; this.pb_editTextBox.TabStop = false; this.pb_editTextBox.Click += new System.EventHandler(this.pb_editTextBox_Click); this.pb_editTextBox.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pb_editTextBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // TextBoxEditer // this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 21F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.pb_editTextBox); this.Margin = new System.Windows.Forms.Padding(6, 5, 6, 5); this.Name = "TextBoxEditer"; this.Size = new System.Drawing.Size(39, 37); ((System.ComponentModel.ISupportInitialize)(this.pb_editTextBox)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.PictureBox pb_editTextBox; } } ================================================ FILE: FreeHttpControl/MyControl/TextBoxEditer.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class TextBoxEditer : UserControl { public class CloseEditBoxEventArgs: EventArgs { public String EditData { get; set; } public CloseEditBoxEventArgs(string editData) { EditData = editData; } } public TextBoxEditer() { InitializeComponent(); myResources = new System.ComponentModel.ComponentResourceManager(typeof(TextBoxEditer)); rtb_editTextBox.Leave += rtb_editTextBox_Leave; rtb_editTextBox.DetectUrls = false; rtb_editTextBox.BackColor = Color.AliceBlue; IsShowEditRichTextBox = false; } public TextBoxEditer(ContainerControl yourContainerControl): this() { MainContainerControl = yourContainerControl; } private RichTextBox rtb_editTextBox = new RichTextBox(); private bool isShowEditRichTextBox; //not set this vaule (you should call IsShowEditRichTextBox to set this vaule) private TextBox editTextBox; System.ComponentModel.ComponentResourceManager myResources; public delegate void CloseEditBoxEventHandler(object sender, CloseEditBoxEventArgs e); public event CloseEditBoxEventHandler OnCloseEditBox; /// /// get a value that is RichTextBox showing /// public bool IsShowEditRichTextBox { get{return isShowEditRichTextBox;} private set { if (isShowEditRichTextBox == value) { return; } isShowEditRichTextBox = value; pb_editTextBox.Image = isShowEditRichTextBox ? ((Image)(myResources.GetObject("zoomsmall"))) : ((Image)(myResources.GetObject("zoombig"))); } } [DescriptionAttribute("the TextBox that you want to binding")] /// /// get or set EditTextBox (the TextBox that you want to binding) /// public TextBox EditTextBox { get { return editTextBox; } set { editTextBox = value; if (editTextBox!=null) { this.BackColor = editTextBox.BackColor; editTextBox.Resize += editTextBox_Resize; editTextBox.Move += editTextBox_Move; } } } [DescriptionAttribute("the main window that RichTextBox will add it")] /// /// get or set MainContainerControl (the main window that RichTextBox will add it) /// public ContainerControl MainContainerControl { get; set; } //pictureBox change for all public void pictureBox_MouseMove(object sender, MouseEventArgs e) { ((PictureBox)sender).BackColor = Color.Honeydew; } //pictureBox change for all public void pictureBox_MouseLeave(object sender, EventArgs e) { ((PictureBox)sender).BackColor = Color.Transparent; } void pb_editTextBox_Click(object sender, EventArgs e) { if(IsShowEditRichTextBox) { CloseRichTextBox(); } else { ShowRichTextBox(); } } void rtb_editTextBox_Leave(object sender, EventArgs e) { CloseRichTextBox(); } void editTextBox_Resize(object sender, EventArgs e) { if (rtb_editTextBox != null && IsShowEditRichTextBox) { rtb_editTextBox.Width = ((TextBox)sender).Width; } } void editTextBox_Move(object sender, EventArgs e) { if (rtb_editTextBox != null && IsShowEditRichTextBox) { Point myClientLocation = MainContainerControl.PointToClient(EditTextBox.Parent.PointToScreen(EditTextBox.Location)); rtb_editTextBox.Location = new Point(myClientLocation.X, myClientLocation.Y + EditTextBox.Height); } } /// /// Close EditRichTextBox (when the windows Deactivate you should call it ) /// public void CloseRichTextBox() { if (!IsShowEditRichTextBox||MainContainerControl == null || EditTextBox == null) { return; } if (MainContainerControl.Contains(rtb_editTextBox)) { EditTextBox.Clear(); EditTextBox.AppendText(rtb_editTextBox.Text); MainContainerControl.Controls.Remove(rtb_editTextBox); IsShowEditRichTextBox = false; if(OnCloseEditBox!=null) { this.OnCloseEditBox(this, new CloseEditBoxEventArgs(rtb_editTextBox.Text)); } } } /// /// Show EditRichTextBox /// public void ShowRichTextBox() { if (MainContainerControl == null || EditTextBox == null) { return; } if (!IsShowEditRichTextBox) { Point myClientLocation = MainContainerControl.PointToClient(EditTextBox.Parent.PointToScreen(EditTextBox.Location)); rtb_editTextBox.Location = new Point(myClientLocation.X, myClientLocation.Y + EditTextBox.Height); rtb_editTextBox.Width = EditTextBox.Width; rtb_editTextBox.Height = 200; rtb_editTextBox.Clear(); MainContainerControl.Controls.Add(rtb_editTextBox); IsShowEditRichTextBox = true; rtb_editTextBox.BringToFront(); rtb_editTextBox.AppendText(EditTextBox.Text); rtb_editTextBox.Focus(); } } } } ================================================ FILE: FreeHttpControl/MyControl/TextBoxEditer.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ..\..\Resources\zoombig.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\..\Resources\zoomsmall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ================================================ FILE: FreeHttpControl/MyControl/WatermakTextBox.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; namespace FreeHttp.FreeHttpControl { class WatermakTextBox : System.Windows.Forms.TextBox { private string watermarkText; private const uint ECM_FIRST = 0x1500; private const uint EM_SETCUEBANNER = ECM_FIRST + 1; [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, uint wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam); [Category("扩展属性"), Description("显示的水印提示信息")] public string WatermarkText { get { return watermarkText; } set { watermarkText = value; SetWatermark(watermarkText); } } private void SetWatermark(string watermarkText) { SendMessage(this.Handle, EM_SETCUEBANNER, 0, watermarkText); } } } ================================================ FILE: FreeHttpControl/RemoveHead.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class RemoveHead { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RemoveHead)); this.lb_info_1 = new System.Windows.Forms.Label(); this.tb_key = new System.Windows.Forms.TextBox(); this.bt_ok = new System.Windows.Forms.Button(); this.SuspendLayout(); // // lb_info_1 // this.lb_info_1.AutoSize = true; this.lb_info_1.Location = new System.Drawing.Point(11, 16); this.lb_info_1.Name = "lb_info_1"; this.lb_info_1.Size = new System.Drawing.Size(29, 12); this.lb_info_1.TabIndex = 10; this.lb_info_1.Text = "Key:"; // // tb_key // this.tb_key.Location = new System.Drawing.Point(91, 12); this.tb_key.Name = "tb_key"; this.tb_key.Size = new System.Drawing.Size(250, 21); this.tb_key.TabIndex = 9; // // bt_ok // this.bt_ok.Location = new System.Drawing.Point(266, 39); this.bt_ok.Name = "bt_ok"; this.bt_ok.Size = new System.Drawing.Size(75, 23); this.bt_ok.TabIndex = 11; this.bt_ok.Text = "confirm"; this.bt_ok.UseVisualStyleBackColor = true; this.bt_ok.Click += new System.EventHandler(this.bt_ok_Click); // // RemoveHead // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(349, 70); this.Controls.Add(this.bt_ok); this.Controls.Add(this.lb_info_1); this.Controls.Add(this.tb_key); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "RemoveHead"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "RemoveHead"; this.Load += new System.EventHandler(this.RemoveHead_Load); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label lb_info_1; private System.Windows.Forms.TextBox tb_key; private System.Windows.Forms.Button bt_ok; } } ================================================ FILE: FreeHttpControl/RemoveHead.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class RemoveHead : Form { ListView editListView; bool isAdd; bool isUnique; //is not allow repetition public RemoveHead(ListView yourEditListView, bool yourIsAdd) : this(yourEditListView, yourIsAdd, false) { } public RemoveHead(ListView yourEditListView, bool yourIsAdd, bool yourIsUnique) { InitializeComponent(); editListView = yourEditListView; isAdd = yourIsAdd; isUnique = yourIsUnique; } private void RemoveHead_Load(object sender, EventArgs e) { if (!isAdd) { tb_key.Text = editListView.SelectedItems[0].Text; } //this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximumSize = this.Size; this.MinimumSize = this.Size; } private void bt_ok_Click(object sender, EventArgs e) { if (tb_key.Text == "") { MessageBox.Show("input key", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); } else { string tempItemStr = tb_key.Text; if (isUnique) { foreach (ListViewItem tempItem in editListView.Items) { if (tempItem.Text == tempItemStr) { if (!isAdd && tempItem == editListView.SelectedItems[0]) { continue; } MessageBox.Show("Find the same data in the list", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } } } if (isAdd) { editListView.Items.Add(tempItemStr); } else { editListView.SelectedItems[0].Text = tempItemStr; } this.Close(); } } } } ================================================ FILE: FreeHttpControl/RemoveHead.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAA AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wAaPr6HGj6+8Bo+vv8aPr7/Gj6+/xo+ vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+ vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+ vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vpYaPr4A////AP///wD///8A////AP///wAaPr7wBSu//wQq v/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//wQq v/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//wQq v/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//xk9vv8aPr4J////AP///wD///8A////AP// /wAaPr7wCDHD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcw w/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcw w/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/xo+vv8aPr4A////AP// /wD///8A////AP///wAaPr7wCzjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4 xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4 xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/xo+ vv8aPr4A////AP///wD///8A////AP///wAaPr7wD0DK/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5A y/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5A y/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5A y/8OQMv/DkDL/xo+vv8aPr4A////AP///wD///8A////AP///wAaPr7wEkjO/xJJz/8SSc//EknP/xJJ z/8SSc//EknP/xJJz/8SSc//EknP/xJJz/8SSc//EknP/xJJz/8SSc//EknP/xJJz/8SSc//EknP/xJJ z/8SSc//EknP/xJJz/8SSc//EknP/xJJz/8SSc//EknP/xJJz/8SSc//EknP/xJJz/8SSc//EknP/xJJ z/8SSc//EknP/xJJz/8SSc//EknP/xo+vv8aPr4A////AP///wD///8A////AP///wAaPr7wF1LT/xdT 1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT 1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT 1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xo+vv8aPr4A////AP///wD///8A////AP// /wAaPr7wG1vX/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd 2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd 2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xo+vv8aPr4A////AP// /wD///8A////AP///wAaPr7wIGXc/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn 3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn 3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/xo+ vv8aPr4A////AP///wD///8A////AP///wAaPr7wI23g/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw 4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw 4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw 4v8kcOL/JHDi/xo+vv8aPr4A////AP///wD///8A////AP///wAaPr7wJ3Xl/yh45/8oeOf/KHjn/yh4 5/8oeOf/KHjn/yh45/8oeOf/KHjn/yh45/8oeOf/KHjn/yh45/8oeOf/KHjn/yh45/8oeOf/KHjn/yh4 5/8oeOf/KHjn/yh45/8oeOf/KHjn/yh45/8oeOf/KHjn/yh45/8oeOf/KHjn/yh45/8oeOf/KHjn/yh4 5/8oeOf/KHjn/yh45/8oeOf/KHjn/xo+vv8aPr4A////AP///wD///8A////AP///wAaPr7wKnzn/yuA 6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA 6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA 6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/xo+vv8aPr4A////AP///wD///8A////AP// /wAaPr7wNJf7/zyu//88r///PK///zyv//88r///PK///zyv//88r///PK///zyv//88r///PK///zyv //88r///PK///zyv//88r///PK///zyv//88r///PK///zyv//88r///PK///zyv//88r///PK///zyv //88r///PK///zyv//88r///PK///zyv//88r///PK///zyv//88r///Np3//xo+vv8aPr4A////AP// /wD///8A////AP///wAaPr6HGj6+8Bo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+ vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+ vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+ vpYaPr4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///////8AAP///////wAA//////// AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA4AAAAAAH AADgAAAAAAMAAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAOAA AAAABwAA4AAAAAAHAADgAAAAAAcAAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAP///////wAA//////// AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// AAA= ================================================ FILE: FreeHttpControl/RuleInfoWindow.cs ================================================ using FreeHttp.FiddlerHelper; using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class RuleInfoWindow : CBalloon.CBalloonBase { public RuleInfoWindow(ListViewItem yourListViewItem) { InitializeComponent(); //this.Width= System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width/2; InnerListViewItem = yourListViewItem; timer = new Timer(); timer.Interval = 200; timer.Tick += Timer_Tick; } public ListViewItem InnerListViewItem { get; private set; } Timer timer; Rectangle lastListViewItemRectangle; bool isLoadRuleComplete = false; Point nowLocation = Point.Empty; [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.Synchronized)] private void LoadRuleInfo(IFiddlerHttpTamper ruleInfo ) { Action GetFiddlerRequestChangeAddition = (nowFiddlerRequestChange) => { if ((nowFiddlerRequestChange.ParameterPickList != null && nowFiddlerRequestChange.ParameterPickList.Count > 0) || nowFiddlerRequestChange.IsHasParameter) { rtb_ruleInfo.AddRtbStr("Addition ", Color.Red, true, new Font(FontFamily.GenericMonospace, 14)); if (nowFiddlerRequestChange.IsHasParameter) { rtb_ruleInfo.AddRtbStr("Has Parameter: ", Color.Blue, false); rtb_ruleInfo.AppendText("true"); rtb_ruleInfo.AppendText("\r\n"); } if (nowFiddlerRequestChange.ParameterPickList != null && nowFiddlerRequestChange.ParameterPickList.Count > 0) { foreach (var tempRequest in nowFiddlerRequestChange.ParameterPickList) { rtb_ruleInfo.AddRtbStr("Request Parameter Pick: ", Color.Blue, false); rtb_ruleInfo.AppendText(tempRequest.ToString()); rtb_ruleInfo.AppendText("\r\n"); } } } }; Action GetFiddlerResponseChangeAddition = (nowFiddlerResponseChange) => { if ((nowFiddlerResponseChange.ParameterPickList != null && nowFiddlerResponseChange.ParameterPickList.Count > 0) || nowFiddlerResponseChange.IsHasParameter || nowFiddlerResponseChange.ResponseLatency > 0) { rtb_ruleInfo.AddRtbStr("Addition ", Color.Red, true, new Font(FontFamily.GenericMonospace, 14)); if (nowFiddlerResponseChange.IsHasParameter) { rtb_ruleInfo.AddRtbStr("Has Parameter: ", Color.Blue, false); rtb_ruleInfo.AppendText("true"); rtb_ruleInfo.AppendText("\r\n"); } if (nowFiddlerResponseChange.ResponseLatency > 0) { rtb_ruleInfo.AddRtbStr("ResponseLatency: ", Color.Blue, false); rtb_ruleInfo.AppendText(nowFiddlerResponseChange.ResponseLatency + "ms"); rtb_ruleInfo.AppendText("\r\n"); } if (nowFiddlerResponseChange.ParameterPickList != null && nowFiddlerResponseChange.ParameterPickList.Count > 0) { foreach (var tempResponse in nowFiddlerResponseChange.ParameterPickList) { rtb_ruleInfo.AddRtbStr("Response Parameter Pick: ", Color.Blue, false); rtb_ruleInfo.AppendText(tempResponse.ToString()); rtb_ruleInfo.AppendText("\r\n"); } } } }; isLoadRuleComplete = false; MyControlHelper.SetControlFreeze(rtb_ruleInfo); MyControlHelper.SetControlFreeze(this); pb_ruleIcon.Image = InnerListViewItem.ImageList.Images[InnerListViewItem.ImageIndex]; rtb_ruleInfo.Clear(); rtb_ruleInfo.AddRtbStr("Filter ", Color.Red, true, new Font(FontFamily.GenericMonospace, 14)); if (ruleInfo.HttpFilter.UriMatch!=null) { rtb_ruleInfo.AddRtbStr("Uri: ", Color.Blue, false); rtb_ruleInfo.AppendText(ruleInfo.HttpFilter.UriMatch.ToString()); rtb_ruleInfo.AppendText("\r\n"); } if (ruleInfo.HttpFilter.HeadMatch != null && ruleInfo.HttpFilter.HeadMatch.HeadsFilter.Count>0) { foreach (var tempHeaderFilter in ruleInfo.HttpFilter.HeadMatch.HeadsFilter) { rtb_ruleInfo.AddRtbStr("Header: ", Color.Blue, false); rtb_ruleInfo.AppendText(string.Format("{0} [contain] {1}", tempHeaderFilter.Key, tempHeaderFilter.Value)); rtb_ruleInfo.AppendText("\r\n"); } } if (ruleInfo.HttpFilter.BodyMatch != null) { rtb_ruleInfo.AddRtbStr("Entity: ", Color.Blue, false); rtb_ruleInfo.AppendText(ruleInfo.HttpFilter.BodyMatch.ToString()); rtb_ruleInfo.AppendText("\r\n"); } rtb_ruleInfo.AddRtbStr("Action ", Color.Red, true, new Font(FontFamily.GenericMonospace, 14)); switch (ruleInfo.TamperProtocol) { case TamperProtocalType.Http: if(ruleInfo is FiddlerRequestChange) { lb_ruleId.Text = string.Format("Http Request Tamper Rule {0}", InnerListViewItem.SubItems[0].Text); FiddlerRequestChange nowFiddlerRequestChange = ruleInfo as FiddlerRequestChange; if (nowFiddlerRequestChange.IsRawReplace) { rtb_ruleInfo.AddRtbStr("Request Replace", Color.Blue, true); rtb_ruleInfo.AppendText(nowFiddlerRequestChange.HttpRawRequest.OriginSting); rtb_ruleInfo.AppendText("\r\n"); } else { if (nowFiddlerRequestChange.UriModific != null && nowFiddlerRequestChange.UriModific.ModificMode != HttpHelper.ContentModificMode.NoChange) { rtb_ruleInfo.AddRtbStr("Request Uri Modific: ", Color.Blue, false); rtb_ruleInfo.AppendText(nowFiddlerRequestChange.UriModific.ToString()); rtb_ruleInfo.AppendText("\r\n"); } if (nowFiddlerRequestChange.HeadDelList != null && nowFiddlerRequestChange.HeadDelList.Count > 0) { foreach (var tempHeaderDel in nowFiddlerRequestChange.HeadDelList) { rtb_ruleInfo.AddRtbStr("Request Head Delete: ", Color.Blue, false); rtb_ruleInfo.AppendText(tempHeaderDel); } } if (nowFiddlerRequestChange.HeadAddList != null && nowFiddlerRequestChange.HeadAddList.Count > 0) { foreach (var tempHeaderAdd in nowFiddlerRequestChange.HeadAddList) { rtb_ruleInfo.AddRtbStr("Request Head Add: ", Color.Blue, false); rtb_ruleInfo.AppendText(tempHeaderAdd); rtb_ruleInfo.AppendText("\r\n"); } } if (nowFiddlerRequestChange.BodyModific != null && nowFiddlerRequestChange.BodyModific.ModificMode != HttpHelper.ContentModificMode.NoChange) { rtb_ruleInfo.AddRtbStr("Request Entity Modific: ", Color.Blue, false); rtb_ruleInfo.AppendText(nowFiddlerRequestChange.BodyModific.ToString()); rtb_ruleInfo.AppendText("\r\n"); } } GetFiddlerRequestChangeAddition(nowFiddlerRequestChange); } else if(ruleInfo is FiddlerResponseChange) { lb_ruleId.Text = string.Format("Http Response Tamper Rule {0}", InnerListViewItem.SubItems[0].Text); FiddlerResponseChange nowFiddlerResponseChange = ruleInfo as FiddlerResponseChange; if (nowFiddlerResponseChange.IsRawReplace) { rtb_ruleInfo.AddRtbStr("Request Replace", Color.Blue, true); rtb_ruleInfo.AppendText(nowFiddlerResponseChange.HttpRawResponse.OriginSting); rtb_ruleInfo.AppendText("\r\n"); } else { if (nowFiddlerResponseChange.HeadDelList != null && nowFiddlerResponseChange.HeadDelList.Count > 0) { foreach (var tempHeaderDel in nowFiddlerResponseChange.HeadDelList) { rtb_ruleInfo.AddRtbStr("Response Head Delete: ", Color.Blue, false); rtb_ruleInfo.AppendText(tempHeaderDel); rtb_ruleInfo.AppendText("\r\n"); } } if (nowFiddlerResponseChange.HeadAddList != null && nowFiddlerResponseChange.HeadAddList.Count > 0) { foreach (var tempHeaderAdd in nowFiddlerResponseChange.HeadAddList) { rtb_ruleInfo.AddRtbStr("Response Head Add: ", Color.Blue, false); rtb_ruleInfo.AppendText(tempHeaderAdd); rtb_ruleInfo.AppendText("\r\n"); } } if (nowFiddlerResponseChange.BodyModific != null && nowFiddlerResponseChange.BodyModific.ModificMode != HttpHelper.ContentModificMode.NoChange) { rtb_ruleInfo.AddRtbStr("Response Entity Modific: ", Color.Blue, false); rtb_ruleInfo.AppendText(nowFiddlerResponseChange.BodyModific.ToString()); rtb_ruleInfo.AppendText("\r\n"); } } GetFiddlerResponseChangeAddition(nowFiddlerResponseChange); } break; case TamperProtocalType.WebSocket: if (ruleInfo is FiddlerRequestChange) { lb_ruleId.Text = string.Format("Websocket Send Tamper Rule {0}", InnerListViewItem.SubItems[0].Text); FiddlerRequestChange nowFiddlerWebSocketRequestChange = ruleInfo as FiddlerRequestChange; if (nowFiddlerWebSocketRequestChange.BodyModific != null && nowFiddlerWebSocketRequestChange.BodyModific.ModificMode != HttpHelper.ContentModificMode.NoChange) { rtb_ruleInfo.AddRtbStr("Socket Payload Modific: ", Color.Blue, false); rtb_ruleInfo.AppendText(nowFiddlerWebSocketRequestChange.BodyModific.ToString()); rtb_ruleInfo.AppendText("\r\n"); } GetFiddlerRequestChangeAddition(nowFiddlerWebSocketRequestChange); } else if (ruleInfo is FiddlerResponseChange) { lb_ruleId.Text = string.Format("Websocket Receive Tamper Rule {0}", InnerListViewItem.SubItems[0].Text); FiddlerResponseChange nowFiddlerWebSocketResponseChange = ruleInfo as FiddlerResponseChange; if (nowFiddlerWebSocketResponseChange.BodyModific != null && nowFiddlerWebSocketResponseChange.BodyModific.ModificMode != HttpHelper.ContentModificMode.NoChange) { rtb_ruleInfo.AddRtbStr("Socket Payload Modific: ", Color.Blue, false); rtb_ruleInfo.AppendText(nowFiddlerWebSocketResponseChange.BodyModific.ToString()); rtb_ruleInfo.AppendText("\r\n"); } GetFiddlerResponseChangeAddition(nowFiddlerWebSocketResponseChange); } break; default: break; } if(!string.IsNullOrEmpty(ruleInfo.HttpFilter.Name)) { lb_ruleId.Text += string.Format(" ({0})", ruleInfo.HttpFilter.Name); } isLoadRuleComplete = true; MyControlHelper.SetControlUnfreeze(rtb_ruleInfo); MyControlHelper.SetControlUnfreeze(this); if (rtb_ruleInfo.Rtf.EndsWith("\r\n")) { rtb_ruleInfo.Rtf = rtb_ruleInfo.Rtf.Remove(rtb_ruleInfo.Rtf.Length - 2, 2); } } private void MyCBalloon_Load(object sender, EventArgs e) { isLoadRuleComplete = false; if (InnerListViewItem != null && InnerListViewItem.Tag is IFiddlerHttpTamper) { IFiddlerHttpTamper nowRule = InnerListViewItem.Tag as IFiddlerHttpTamper; LoadRuleInfo(nowRule ); lastListViewItemRectangle = InnerListViewItem.Bounds; timer.Start(); } else { MessageBox.Show("can not find rule data ", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); this.Close(); } } private void Timer_Tick(object sender, EventArgs e) { if(InnerListViewItem==null || InnerListViewItem.ListView==null) { Close(); return; } try { //Item被折叠后获取Bounds属性会异常 _ = InnerListViewItem.Bounds; } catch { Close(); return; } if(lastListViewItemRectangle != InnerListViewItem.Bounds) { lastListViewItemRectangle = InnerListViewItem.Bounds; Form mainForm = this.Owner.Owner; int tempFinalY = InnerListViewItem.Bounds.Y; if(tempFinalY < 0) { tempFinalY = 0; } else if(tempFinalY> InnerListViewItem.ListView.Height) { tempFinalY = InnerListViewItem.ListView.Height; } Point myPosition = new Point(InnerListViewItem.Bounds.X, tempFinalY); myPosition = InnerListViewItem.ListView.PointToScreen(myPosition); myPosition = mainForm.PointToClient(myPosition); myPosition.Offset(40, 10); this.UpdateBalloonPosition(myPosition); } } private void pictureBox_close_Click(object sender, EventArgs e) { this.Owner.Activate(); this.Close(); } private void pictureBox1_Click(object sender, EventArgs e) { RefreshRuleInfo(); } public void RefreshRuleInfo() { if (InnerListViewItem == null || InnerListViewItem.ListView == null) { Close(); return; } if (InnerListViewItem.Tag !=null && InnerListViewItem.Tag is IFiddlerHttpTamper) { IFiddlerHttpTamper nowRule = InnerListViewItem.Tag as IFiddlerHttpTamper; LoadRuleInfo(nowRule); } } public new void Close() { if(timer!=null) { timer.Stop(); timer.Dispose(); } InnerListViewItem = null; base.Close(); } private void rtb_ruleInfo_ContentsResized(object sender, ContentsResizedEventArgs e) { var richTextBox = (RichTextBox)sender; // richTextBox.Width = e.NewRectangle.Width; int lineheight = richTextBox.Font.Height; int nHeight = lineheight; if (e.NewRectangle.Height < lineheight) nHeight = lineheight; else nHeight = e.NewRectangle.Height + lineheight; richTextBox.Height = nHeight > System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height / 2 ? System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height / 2 : nHeight; this.Height = richTextBox.Height + 95; this.reSizeMe(); } } } ================================================ FILE: FreeHttpControl/RuleInfoWindow.designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class RuleInfoWindow { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; /// /// 清理所有正在使用的资源。 /// /// 如果应释放托管资源,为 true;否则为 false。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region 组件设计器生成的代码 /// /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RuleInfoWindow)); this.pictureBox_close = new System.Windows.Forms.PictureBox(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.lb_ruleId = new System.Windows.Forms.Label(); this.pb_ruleIcon = new System.Windows.Forms.PictureBox(); this.rtb_ruleInfo = new System.Windows.Forms.RichTextBox(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_close)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_ruleIcon)).BeginInit(); this.SuspendLayout(); // // pictureBox_close // this.pictureBox_close.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pictureBox_close.Cursor = System.Windows.Forms.Cursors.Hand; this.pictureBox_close.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox_close.Image"))); this.pictureBox_close.Location = new System.Drawing.Point(873, 33); this.pictureBox_close.Name = "pictureBox_close"; this.pictureBox_close.Size = new System.Drawing.Size(20, 20); this.pictureBox_close.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox_close.TabIndex = 2; this.pictureBox_close.TabStop = false; this.pictureBox_close.Click += new System.EventHandler(this.pictureBox_close_Click); // // pictureBox1 // this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pictureBox1.Cursor = System.Windows.Forms.Cursors.Hand; this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); this.pictureBox1.Location = new System.Drawing.Point(850, 33); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(20, 20); this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pictureBox1.TabIndex = 7; this.pictureBox1.TabStop = false; this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); // // lb_ruleId // this.lb_ruleId.AutoSize = true; this.lb_ruleId.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lb_ruleId.ForeColor = System.Drawing.Color.RosyBrown; this.lb_ruleId.Location = new System.Drawing.Point(60, 37); this.lb_ruleId.MaximumSize = new System.Drawing.Size(800, 18); this.lb_ruleId.Name = "lb_ruleId"; this.lb_ruleId.Size = new System.Drawing.Size(62, 16); this.lb_ruleId.TabIndex = 8; this.lb_ruleId.Text = "RuleId"; // // pb_ruleIcon // this.pb_ruleIcon.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_ruleIcon.Cursor = System.Windows.Forms.Cursors.Default; this.pb_ruleIcon.Location = new System.Drawing.Point(35, 35); this.pb_ruleIcon.Name = "pb_ruleIcon"; this.pb_ruleIcon.Size = new System.Drawing.Size(20, 20); this.pb_ruleIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pb_ruleIcon.TabIndex = 9; this.pb_ruleIcon.TabStop = false; // // rtb_ruleInfo // this.rtb_ruleInfo.BorderStyle = System.Windows.Forms.BorderStyle.None; this.rtb_ruleInfo.DetectUrls = false; this.rtb_ruleInfo.Location = new System.Drawing.Point(35, 59); this.rtb_ruleInfo.Name = "rtb_ruleInfo"; this.rtb_ruleInfo.ReadOnly = true; this.rtb_ruleInfo.Size = new System.Drawing.Size(858, 242); this.rtb_ruleInfo.TabIndex = 0; this.rtb_ruleInfo.Text = ""; this.rtb_ruleInfo.ContentsResized += new System.Windows.Forms.ContentsResizedEventHandler(this.rtb_ruleInfo_ContentsResized); // // RuleInfoWindow // this.ClientSize = new System.Drawing.Size(929, 337); this.Controls.Add(this.pictureBox1); this.Controls.Add(this.pictureBox_close); this.Controls.Add(this.rtb_ruleInfo); this.Controls.Add(this.pb_ruleIcon); this.Controls.Add(this.lb_ruleId); this.FrameBottomRight = System.Drawing.Color.Cyan; this.FrameTopLeft = System.Drawing.Color.SkyBlue; this.Name = "RuleInfoWindow"; this.Load += new System.EventHandler(this.MyCBalloon_Load); ((System.ComponentModel.ISupportInitialize)(this.pictureBox_close)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_ruleIcon)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.PictureBox pictureBox_close; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.Label lb_ruleId; private System.Windows.Forms.PictureBox pb_ruleIcon; private System.Windows.Forms.RichTextBox rtb_ruleInfo; } } ================================================ FILE: FreeHttpControl/RuleInfoWindow.resx ================================================ text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 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 AABJRU5ErkJggg== ================================================ FILE: FreeHttpControl/SaveShareRule.Designer.cs ================================================  namespace FreeHttp.FreeHttpControl { partial class SaveShareRule { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SaveShareRule)); this.rb_updataRule = new System.Windows.Forms.RadioButton(); this.rb_newRule = new System.Windows.Forms.RadioButton(); this.comboBox_yourRule = new System.Windows.Forms.ComboBox(); this.ck_parameterData = new System.Windows.Forms.CheckBox(); this.bt_save = new System.Windows.Forms.Button(); this.wtb_ruleRemark = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.SuspendLayout(); // // rb_updataRule // this.rb_updataRule.AutoSize = true; this.rb_updataRule.Location = new System.Drawing.Point(10, 23); this.rb_updataRule.Name = "rb_updataRule"; this.rb_updataRule.Size = new System.Drawing.Size(125, 16); this.rb_updataRule.TabIndex = 0; this.rb_updataRule.Text = "update share rule"; this.rb_updataRule.UseVisualStyleBackColor = true; // // rb_newRule // this.rb_newRule.AutoSize = true; this.rb_newRule.Checked = true; this.rb_newRule.Location = new System.Drawing.Point(10, 54); this.rb_newRule.Name = "rb_newRule"; this.rb_newRule.Size = new System.Drawing.Size(149, 16); this.rb_newRule.TabIndex = 1; this.rb_newRule.TabStop = true; this.rb_newRule.Text = "create new share rule"; this.rb_newRule.UseVisualStyleBackColor = true; this.rb_newRule.CheckedChanged += new System.EventHandler(this.rb_newRule_CheckedChanged); // // comboBox_yourRule // this.comboBox_yourRule.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBox_yourRule.FormattingEnabled = true; this.comboBox_yourRule.Items.AddRange(new object[] { "Please share a set of rules first"}); this.comboBox_yourRule.Location = new System.Drawing.Point(157, 21); this.comboBox_yourRule.Name = "comboBox_yourRule"; this.comboBox_yourRule.Size = new System.Drawing.Size(287, 20); this.comboBox_yourRule.TabIndex = 24; // // ck_parameterData // this.ck_parameterData.AutoSize = true; this.ck_parameterData.Checked = true; this.ck_parameterData.CheckState = System.Windows.Forms.CheckState.Checked; this.ck_parameterData.Location = new System.Drawing.Point(10, 91); this.ck_parameterData.Name = "ck_parameterData"; this.ck_parameterData.Size = new System.Drawing.Size(156, 16); this.ck_parameterData.TabIndex = 26; this.ck_parameterData.Text = " update parameter data"; this.ck_parameterData.UseVisualStyleBackColor = true; // // bt_save // this.bt_save.Location = new System.Drawing.Point(367, 88); this.bt_save.Name = "bt_save"; this.bt_save.Size = new System.Drawing.Size(75, 23); this.bt_save.TabIndex = 27; this.bt_save.Text = "confirm"; this.bt_save.UseVisualStyleBackColor = true; this.bt_save.Click += new System.EventHandler(this.bt_save_Click); // // wtb_ruleRemark // this.wtb_ruleRemark.Location = new System.Drawing.Point(157, 52); this.wtb_ruleRemark.Name = "wtb_ruleRemark"; this.wtb_ruleRemark.Size = new System.Drawing.Size(287, 21); this.wtb_ruleRemark.TabIndex = 25; this.wtb_ruleRemark.WatermarkText = "please enter comment name"; // // SaveShareRule // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(452, 119); this.Controls.Add(this.bt_save); this.Controls.Add(this.ck_parameterData); this.Controls.Add(this.wtb_ruleRemark); this.Controls.Add(this.comboBox_yourRule); this.Controls.Add(this.rb_newRule); this.Controls.Add(this.rb_updataRule); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "SaveShareRule"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "SaveShareRule"; this.Load += new System.EventHandler(this.SaveShareRule_Load); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.RadioButton rb_updataRule; private System.Windows.Forms.RadioButton rb_newRule; private System.Windows.Forms.ComboBox comboBox_yourRule; private WatermakTextBox wtb_ruleRemark; private System.Windows.Forms.CheckBox ck_parameterData; private System.Windows.Forms.Button bt_save; } } ================================================ FILE: FreeHttpControl/SaveShareRule.cs ================================================ using FreeHttp.FreeHttpControl.ControlHelper; using FreeHttp.WebService; using System; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class SaveShareRule : Form { ShareRuleService shareRuleService; LoadWindowService loadWindowService; public SaveShareRule(ShareRuleService ruleService) { InitializeComponent(); shareRuleService = ruleService; loadWindowService = new LoadWindowService(); } private void SaveShareRule_Load(object sender, EventArgs e) { comboBox_yourRule.DataSource = shareRuleService.NowShareRuleSummary.PrivateRuleList; comboBox_yourRule.ValueMember = "Token"; comboBox_yourRule.DisplayMember = "ShowTag"; comboBox_yourRule.Text = "please select personal ShareRule"; rb_newRule_CheckedChanged(sender, e); } private void rb_newRule_CheckedChanged(object sender, EventArgs e) { if(rb_newRule.Checked) { wtb_ruleRemark.Enabled = true; comboBox_yourRule.Enabled = false; } else { wtb_ruleRemark.Enabled = false; comboBox_yourRule.Enabled = true; } } private void bt_save_Click(object sender, EventArgs e) { if (rb_newRule.Checked) { if (string.IsNullOrEmpty(wtb_ruleRemark.Text)) { MessageBox.Show("please enter comment name", "Stop"); MyHelper.MyGlobalHelper.markControlService.MarkControl(wtb_ruleRemark, System.Drawing.Color.Aquamarine, 2); return; } shareRuleService.SaveShareRulesAsync(wtb_ruleRemark.Text, ck_parameterData.Checked).ContinueWith((rs => { if (rs.Result.Key == null) { this.Invoke((new Action(() => MessageBox.Show("Save share rule fail ,Please try again later", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Warning)))); } else { shareRuleService.NowShareRuleSummary?.PrivateRuleList.Add(new WebService.DataModel.ShareRuleSummary.RuleToken() { Token = rs.Result.Key, Remark = rs.Result.Value }); this.Invoke((new Action(() => MessageBox.Show($"your share rule [{rs.Result.Value ?? "-"}] save succeed", "succeed", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly)))); if (this != null && !this.IsDisposed) { //理论上使用.ConfigureAwait(true)尝试将延续任务封送回原始上下文; 可以不用Invoke,而winform里默认就是true的,不过在这里ContinueWith的前一个任务的上下文大概率已经不是主线程了 //所以还是直接使用Invoke保险 (或者Control.CheckForIllegalCrossThreadCalls = false; 但是这个并不推荐,只是在隐藏风险) this.Invoke(new Action(() => { (this.Owner as GetRemoteRuleWindow)?.GotoPrvateRule(rs.Result.Key); })); //(this.Owner as GetRemoteRuleWindow)?.GotoPrvateRule(rs.Result.Key); this.Close(); } } loadWindowService.StopLoad(); MyHelper.MyGlobalHelper.PutGlobalMessage(this, new MyHelper.MyGlobalHelper.GlobalMessageEventArgs(false, $"save share rule [{rs.Result.Value}] that taken is : {rs.Result.Key}")); })); loadWindowService.StartLoad(this); } else if(rb_updataRule.Checked) { if(string.IsNullOrEmpty((string)comboBox_yourRule.SelectedValue)) { MessageBox.Show("Update share rule fail ,please choose an existed share rule first ", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); MyHelper.MyGlobalHelper.markControlService.MarkControl(comboBox_yourRule, System.Drawing.Color.Pink, 2); return; } shareRuleService.UpdateShareRulesAsync((string)comboBox_yourRule.SelectedValue,ck_parameterData.Checked).ContinueWith((rs => { if (!rs.Result) { this.Invoke((new Action(() => MessageBox.Show("Update share rule fail ,Please try again later", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Warning)))); } else { //ContinueWith 里面如果不用Invoke,MessageBox不会盖在顶层(后面的操作UI代码可能不在主线程) this.Invoke((new Action(() => MessageBox.Show($"your share rule [{comboBox_yourRule.Text}] update succeed", "succeed", MessageBoxButtons.OK, MessageBoxIcon.None)))); if (this != null && !this.IsDisposed) { this.Invoke(new Action(() => { (this.Owner as GetRemoteRuleWindow)?.GotoPrvateRule((string)comboBox_yourRule.SelectedValue); })); this.Close(); } } loadWindowService.StopLoad(); MyHelper.MyGlobalHelper.PutGlobalMessage(this, new MyHelper.MyGlobalHelper.GlobalMessageEventArgs(false, $"update share rule [{comboBox_yourRule.Text}]")); })); loadWindowService.StartLoad(this); } } } } ================================================ FILE: FreeHttpControl/SaveShareRule.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAQEAAAAAAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAgEAAJZTMgD1iFJ/8oZRv04rGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAADogEwD1h1HF9YhS//WIUv/hfUv8AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7IBMA9YhR7/WIUv/1iFL/4X1L/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOyATAPWI Ue/1iFL/9YhS/+F9S/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADsgEwD1iFHv9YhS//WIUv/hfUv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7IBMA9YhR7/WIUv/1iFL/4X1L/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOyATAPWIUe/1iFL/9YhS/+F9 S/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsg EwD1iFHv9YhS//WIUv/hfUv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAA7IBMA9YhR7/WIUv/1iFL/4X1L/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOyATAPWIUe/1iFL/9YhS/+F9S/8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsgEwD1iFHv9YhS//WI Uv/hfUv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAA7IBMA9YhR7/WIUv/1iFL/4X1L/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAALBgMAMRsQADEbEAAxGxAAMRsQADEbEAAxGxAAMRsQADEbEAAxGxAAMRsQADEb EAAxGxAAKxgOAAAAAAAAAAAAOyATAPWIUe/1iFL/9YhS/+F9S/8AAAAAAAAAAAkFAwAxGxAAMRsQADEb EAAxGxAAMRsQADEbEAAxGxAAMRsQADEbEAAxGxAAMRsQADEbEAAtGA8AAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAABgMCAGA1IACxYjsA3ntKYfWHUbz1iFLT9YhR5/WIUef1iFHn9YhR5/WI Uef1iFHn9YhR5/WIUef1iFHn9YhR59d4SOcAAAAAAAAAADsgEwD1iFHv9YhS//WIUv/hfUv/AAAAAAAA AAAxGxAA9YhRwPWIUef1iFHn9YhR5/WIUef1iFHn9YhR5/WIUef1iFHn9YhR5/WIUef1h1Lc8oZRxdd3 SIqYVTILPCETAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOB4WANFzRQX0h1LN9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/XeEj/AAAAAAAAAAA7IBMA9YhR7/WI Uv/1iFL/4X1L/wAAAAAAAAAAMRsQAPWIUs/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//GFUOqjWTQgBQMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVC8cAPKGUSz1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YdS/9h3SP+mXDf/xG1C/wAA AAAAAAAAOyATAPWIUe/1iFL/9YhS/+F9S/8AAAAAAAAAADEbEADIb0PPplw3//GGUP/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhR/9V3R8AfEQoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVC4cAPWI UWX1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFH/p104/xwP CWQAAAAAAAAAAAAAAAAAAAAAAAAAADsgEwD1iFHv9YhS//WIUv/hfUv/AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAOB8SANl4SP/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/23pJ/x8RCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAIRIKAO6FTyL1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/rGA5/AUDAQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7IBMA9YhR7/WIUv/1iFL/4X1L/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhEgsA3XtJ1fWIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv+9aD7FBQIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAALZkOwD1iFL69YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/33xK/yQWDEIAAAAAAAAAADgfEwBrOyMALBgOAAAAAAAAAAAAOyATAPWI Ue/1iFL/9YhS/+F9S/8AAAAAAAAAAAYDAgBJKRgAazwkABcNBwAAAAAAAAAAAF01HwD1h1L/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9IdR/2Y4IicAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8aDwDxhVCO9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS/55YNf8AAAAAAAAAAEspGQD0h1Jn9YhS/++E UOxaMh4JAAAAADsgEwD1iFHv9YhS//WIUv/hfUv/AAAAAAYDAgCcVjQA9YdSj/WIUv/kf0zUDAYEAAAA AAAPCAUA3XpKnvWIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/RdEX4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8RSkA9YhS9fWI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv91QSfJAAAAAAAA AACcVjQA9YhS//WIUv/1iFL/74RQ9loyHgo7IBMA9YhR7/WIUv/1iFL/4X1L/wUDAgCcVzQA9YhStPWI Uv/1iFL/9YhS/04rGmwAAAAAAAAAAMRsQTj1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/8YZQ/zEbEBMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAzHFEA/WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/iU4t1AAAAAAAAAAAiU0uAPWIUv/1iFL/9YhS//WIUv/vhVD2lFIxCfWIUe/1iFL/9YhS/+Z/ TP+dVzUA9YhStvWIUv/1iFL/9YhS//SIUf87IRR3AAAAAAcDAQDQckQ/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv9/RSq2AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAANd3SEn1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS/9F0Rv4IBAIAAAAAAAYDAgCwYTue9YhS//WIUv/1iFL/9YhS//WI Ufj1iFHv9YhS//WIUv/1iFH/9YhSvPWIUv/1iFL/9YhS//WIUv9nOSL/AAAAAAAAAAAzHBAA9YdRjPWI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/iUwt3wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXd0iW9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1h1L/aDkiJgAAAAAAAAAABgMCAK9h Opf1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//SIUf9nOSL/AAAAAQAA AAAGAwIAsGE7APWIUv31iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS/4lMLf0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA13dIffWI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS/+J9 S/8sGA4AAAAAAAAAAAAGAwIArWA6lfWIUf/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//KG Uf9nOSL/AAAAAAAAAAAAAAAAZzkiAPWIUrH1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv+JTC33AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAANF0Rlb1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/4X1L/ywYDgIAAAAAAAAAAAgEAgCsXzmT9YhR//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//GGUP9oOiP1AAAAAAAAAAAAAAAAZzkiAPWIUp31iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/iUwt7wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJTC0A9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/ifUv/KxgOAAAAAAAAAAAACQUDAKtf OZH1h1H/9YhS//WIUv/1iFL/9YhS//GGUP9pOiPwAAAAAAAAAAAAAAAAZzkiAPWIUp/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS/00r GcIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDcgAPWIUfz1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS/+B8 Sv8tGQ8AAAAAAAAAAAAJBQMAq145j/WIUf/1iFL/9YhS//GGUP9pOiPvAAAAAAAAAAAAAAAAaTojAPOG UZ/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS/+uCTv8eEApDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkF AwDUdkeb9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/33tK+i4ZDwAAAAAAAAAAAAkFAwCeVzSK84ZR/+N+TP9oOiL0AAAAAAAA AAAAAAAAajojAPGGUKT1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv+QTy/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAVi8cAPKGUf/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/ee0r4LhkPAAAAAAAAAAAAAAAAABwP CRsSCgYvAAAAAAAAAAAAAAAAajojAPGGUK71iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/cekn/HhAKWgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAClXDdK9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS/997 SvktGQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaTojAPGGULn1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/WDEd5QAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwEBAKle OKX1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/74VP+5RSMQsfEQoAAAAAAAAAAAA/IhQAwGtAAPOGUdH1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/XjQf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAADAQEAjE4vb/KGUf/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//SHUZL1iFJn9YhS7fWI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/cekn/VzAd8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9IRQJuGY97+uCTv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS/+uDTv+PTy/6HhAJUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAeEQoAZjkiiYlMLdjwhVD69YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/ngE3/iUwu7GU4IsgeEQk8AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxW1CP/WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/nVc0/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRAJgD1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS/1sy HsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAiEwsA9IhR//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//GFT/8JBQMOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJZTMhj1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv+UUzD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmFQwA9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1h1H/JRQLNgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJBQ MBP1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1h1L/d0Io/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAKBQMA1HRFmPWIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/0iFL/q185/wUDAQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMTCwDWdkfx9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/1nZH/yMTC1MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJBQMANV2 R+v1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/1XZH/yQUC20AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAjFAwA1XZH5/WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFH/xm5C/yQTDF0AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAJBQCUUjGD8oZR//WIUv/1iFL/9YhS//WI Uv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/yhlH/e0Qp+AcD AhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQl FxXJcEPn9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WIUv/1iFL/9YhS//SI Uf+ZVTP/LBgOhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAwIBAEMjFhCTUjHezHFE//SIUv/1iFL/9YhS//WIUv/1iFL/9YhS//WI Uv/1iFL/s2M7/3tEKf8qFw5BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPCAUATisaRE4r GolOKxrMTisa704rGq5OKxpuDwgEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA//////////////////////////////////////////////////////////////////////// //////////////////5//////////D/////////8P/////////w//////////D/////////8P/////// //w//////////D/////////8P/////////w//////////D/////////8P/////////w///////gAHDgA D///wAAcOAAD//+AABw4AAH//wAA/D+AAP/+AAH8P8AAf/4AA/w/4AA//AAHDDjgAD/8AAcEMGAAH/gA BwAgYAAf+AAHAADgAB/4AAOAAOAAH/gAA8ADwAAf+AAA4AeAAB/8AADwDwAAH/wAAHgeAAAf/AAAPDwA AD/+AAAeeAAAP/4AAA/wAAB//wAAA+AAAP//gAAAAAAB///AAAAAAAP///gAAAAAD////gAAAAB///// AAAAAH////8AAAAAf////wAAAAD/////gAAAAP////+AAAAB/////8AAAAH/////4AAAA//////wAAAH //////gAAA///////AAAH//////+AAB///////+AAf////////gP//////////////////////////// //////////////////////////////////////////////////8= ================================================ FILE: FreeHttpControl/SetVaule.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class SetVaule { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SetVaule)); this.bt_ok = new System.Windows.Forms.Button(); this.tb_vaule = new System.Windows.Forms.TextBox(); this.lb_info = new System.Windows.Forms.Label(); this.SuspendLayout(); // // bt_ok // this.bt_ok.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.bt_ok.Location = new System.Drawing.Point(197, 67); this.bt_ok.Name = "bt_ok"; this.bt_ok.Size = new System.Drawing.Size(75, 23); this.bt_ok.TabIndex = 8; this.bt_ok.Text = "confirm"; this.bt_ok.UseVisualStyleBackColor = true; this.bt_ok.Click += new System.EventHandler(this.bt_ok_Click); // // tb_vaule // this.tb_vaule.Location = new System.Drawing.Point(11, 42); this.tb_vaule.Name = "tb_vaule"; this.tb_vaule.Size = new System.Drawing.Size(260, 21); this.tb_vaule.TabIndex = 9; // // lb_info // this.lb_info.Location = new System.Drawing.Point(11, 3); this.lb_info.Name = "lb_info"; this.lb_info.Size = new System.Drawing.Size(260, 36); this.lb_info.TabIndex = 10; // // SetVaule // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(284, 102); this.Controls.Add(this.lb_info); this.Controls.Add(this.tb_vaule); this.Controls.Add(this.bt_ok); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "SetVaule"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "SetVaule"; this.Load += new System.EventHandler(this.SetVaule_Load); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Button bt_ok; private System.Windows.Forms.TextBox tb_vaule; private System.Windows.Forms.Label lb_info; } } ================================================ FILE: FreeHttpControl/SetVaule.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class SetVaule : Form { public class SetVauleEventArgs:EventArgs { public string SetValue{get; set;} public SetVauleEventArgs(string setValue) { SetValue= setValue; } } public SetVaule() { InitializeComponent(); } Func CheckValueFunc; public event EventHandler OnSetValue; public SetVaule(string formName, string remarkInfo, string nowValue, Func checkValueDelegate) : this() { if (formName != null){ this.Text = this.Name = formName; } if (remarkInfo != null) { lb_info.Text = remarkInfo; } if (nowValue != null) { tb_vaule.Text = nowValue; } if (checkValueDelegate != null) { CheckValueFunc = checkValueDelegate; } } private void SetVaule_Load(object sender, EventArgs e) { //this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximumSize = this.Size; this.MinimumSize = this.Size; } private void bt_ok_Click(object sender, EventArgs e) { if (CheckValueFunc != null) { string checkMes = CheckValueFunc(tb_vaule.Text); if (checkMes != null) { MessageBox.Show($"your value is not legal \r\n{checkMes}\r\n edit it again", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } } if(OnSetValue!=null) { this.OnSetValue(this, new SetVauleEventArgs(tb_vaule.Text)); } this.DialogResult = DialogResult.OK; this.Close(); } } } ================================================ FILE: FreeHttpControl/SetVaule.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wDovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+ RADovkQA6L5EAOi+RADovkQA6LxDAOa6QgDmuEEA5rdBAOS2QADktT8A5LM9AOOxPQDisD0A4q88AOKv PADirzwA4a49AOKvPQDisD4A47E/AOSxPgDjsTsA5LM5AOSzOQDkszkA5LM5AOSzOQDkszkA5LM5AOSz OQDkszkA5LM5AOSzOQDkszkA5LM5AOSzOQDkszkA5LM5AOOyOQ3isDhr4a44n+GtOKDhrTif4a04n+Gu OJ/hrjif4a44n+GtOJ/hrTif4aw4n+GrOJ/hqzih4as4gOGtOCDhrzkA4a85AOGvOQDhrzkA4a85AOGv OQDhrzkA4a85AOGvOQDhrzkA4a85AOGvOQDhrzkA4a85AOGvOQDhrzkA5LQ7AOW2PwDltkAA5LY/AOSz PQDjsT0A4q89AOKvPADirzwA4a88AOGuPQDirz0A4rA+AOKxPgDksT4A5LJAAOSzQQDktEEA5rZCAOa2 QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AOi+ RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovEMA5rpCAOa4 QQDmt0EA5LZAAOS1PwDksz0A47E9AOKwPQDirzwA4q88AOKvPADhrj0A4q89AOKwPgDjsT8A5LE+AOOx OwDktDkA5LQ5AOS0OQDktDkA5LQ5AOS0OQDktDkA5LQ5AOS0OQDktDkA5LQ5AOS0OQDktDkA5LQ5AOS0 OQDktDkA47I5eOKwOPXisDj/4rA5/+KwOf/isDn/4rE4/+KwOP/isDj/4rA4/+KwOf/irzn/4q45/+Gt OP/hrDj+4a05pOGvOQzhrzkA4a85AOGvOQDhrzkA4a85AOGvOQDhrzkA4a85AOGvOQDhrzkA4a85AOGv OQDhrzkA4a85AOGvOQDktDsA5bY/AOW2QADktj8A5LM9AOOxPQDirz0A4q88AOKvPADhrzwA4a49AOKv PQDisD4A4rE+AOSxPgDkskAA5LNBAOS0QQDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2 QgDmtkIA5rZCAOa2QgDmtkIA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+ RADovkQA6L5EAOi+RADovkQA6L5EAOi8QwDmukIA5rhBAOa3QQDktkAA5LU/AOSzPQDjsT0A4rA9AOKv PADirzwA4q88AOGuPQDirz0A4rA+AOOxPwDksT4A47E7AOS2OQDktzkA5Lc5AOS3OQDktzkA5Lc5AOS3 OQDktzkA5Lc5AOS3OQDktzkA5Lc5AOS3OQDktzkA5Lc5AOS2OWDktDn/5LQ5/+S1Of/ktTn/5LU4/+S1 Nf/ktTP/5LQy/+S0Mv/ktDP/5LQ0/+S0N//ktDn/47M5/+KwOf/hrzn/4rA5muKxOQDisTkA4rE5AOKx OQDisTkA4rE5AOKxOQDisTkA4rE5AOKxOQDisTkA4rE5AOKxOQDisTkA4rE5AOS0PADltj8A5bZAAOS2 PwDksz0A47E9AOKvPQDirzwA4q88AOGvPADhrj0A4q89AOKwPgDisT4A5LE+AOSyQADks0EA5LRBAOa2 QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wDovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6LxDAOa6 QgDmuEEA5rdBAOS2QADktT8A5LM9AOOxPQDisD0A4q88AOKvPADirzwA4a49AOKvPQDisD4A47E/AOSy PgDjsDsA5LY5AOW6OgDluToA5bk6AOW5OgDluToA5bk6AOW5OgDluToA5bk6AOW5OgDluToA5bk6AOW5 OgDluToA5bk6wuS4Ov/luDr/5bg5/+W4Nv/ltzL/5LYv/+S1Lf/ktSz/5LUs/+S1LP/kti7/5LYx/+S2 Nf/ktjn/5LU6/+OzOf/isTnv4rI5GuKyOQDisjkA4rI5AOKyOQDisjkA4rI5AOKyOQDisjkA4rI5AOKy OQDisjkA4rI5AOKyOQDisjkA5bU8AOW2PwDltkAA5LY/AOSzPQDjsT0A4q89AOKvPADirzwA4a88AOGu PQDirz0A4rA+AOKxPgDksT4A5LJAAOSzQQDktEEA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2 QgDmtkIA5rZCAOa2QgDmtkIA5rZCAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+ RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovEMA5rpCAOa4QQDmt0EA5LZAAOS1PwDksz0A47E9AOKw PQDirzwA4q88AOKvPADhrj0A4q89AOKwPgDjsT8A5LI+AOOxOwDksjkA5rs6AOa7OgDmuzoA5rs6AOa7 OgDmuzoA5rs6AOa7OgDmuzoA5rs6AOa7OgDmuzoA5rs6AOa7Ogfmuzra5ro6/+a6Ov/muTb/5bgw/+W3 Lf/ktSr/5LUo/+S1J//ktSf/5LUn/+S1Kf/ktiz/5bcw/+W3NP/ltzn/5LU6/+OzOv3jszov47M6AOOz OgDjszoA47M6AOOzOgDjszoA47M6AOOzOgDjszoA47M6AOOzOgDjszoA47M6AOS0OgDltTwA5bY/AOW2 QADktj8A5LM9AOOxPQDirz0A4q88AOKvPADhrzwA4a49AOKvPQDisD4A4rE+AOSxPgDkskAA5LNBAOS0 QQDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi8 QwDmukIA5rhBAOa3QQDktkAA5LU/AOSzPQDjsT0A4rA9AOKvPADirzwA4q88AOGuPQDirz0A4rA+AOOx PwDksj4A47E7AOOwOADluDkA5746AOe9OgDnvToA5706AOe9OgDnvToA5706AOe9OgDnvToA5706AOe9 OgDnvToA5706B+e9OtnnvDr/5rs3/+a5Mf/ltyz/5bYp/+S0Jf/ktCP/5LMi/+SzIv/ktCL/5LQl/+S1 KP/ktiv/5bcw/+W4Nv/luDr/5LU6/eS0Oi7ktDoA5LQ6AOS0OgDktDoA5LQ6AOS0OgDktDoA5LQ6AOS0 OgDktDoA5LQ6AOS0OgDktDoA5LQ5AOW1PADltj8A5bZAAOS2PwDksz0A47E9AOKvPQDirzwA4q88AOGv PADhrj0A4q89AOKwPgDisT4A5LE+AOSyQADks0EA5LRBAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2 QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wDovkQA6L5EAOi+RADovkQA6L5EAOi+ RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6LxDAOa6QgDmuEEA5rdBAOS2QADktT8A5LM9AOOx PQDisD0A4q88AOKvPADirzwA4a49AOKvPQDisD4A47E/AOSyPgDjsTsA47A4AOSzNgDnvDsA57w7AOe8 OwDnvDsA57w7AOe8OwDnvDsA57w7AOe8OwDnvDsA57w7AOe8OwDnvDsH6L072ei9Of/nuzT/5rkt/+W3 Kf/ltiT/5bQh/+S0H//ksx3/5LMd/+SzHv/ltCH/5bUj/+W2KP/ltyz/5rky/+a5Of/luDv95LY6LuS2 OgDktjoA5LY6AOS2OgDktjoA5LY6AOS2OgDktjoA5LY6AOS2OgDktjoA5LY6AOS0OADktDkA5bU8AOW2 PwDltkAA5LY/AOSzPQDjsT0A4q89AOKvPADirzwA4a88AOGuPQDirz0A4rA+AOKxPgDksT4A5LJAAOSz QQDktEEA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+ RADovEMA5rpCAOa4QQDmt0EA5LZAAOS1PwDksz0A47E9AOKwPQDirzwA4q88AOKvPADhrj0A4q89AOKw PgDjsT8A5LI+AOOxOwDjsDgA47A0AOa3OQDnuz0A57s8AOe7PADnuzwA57s8AOe7PADnuzwA57s8AOe7 PADnuzwA57s8AOe7PAfnvDzZ57s4/+a6Mf/muCr/5bYl/+S1If/ksx7/5LMb/+SyGv/kshr/5LIb/+Sz Hf/ktCD/5bUk/+W3Kf/luC//5rk2/+a5O/3ltzsu5bc7AOW3OwDltzsA5bc7AOW3OwDltzsA5bc7AOW3 OwDltzsA5bc7AOW3OwDltjkA5LQ2AOS0OQDltTwA5bY/AOW2QADktj8A5LM9AOOxPQDirz0A4q88AOKv PADhrzwA4a49AOKvPQDisD4A4rE+AOSxPgDkskAA5LNBAOS0QQDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2 QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A6L5EAOi+RADovkQA6L5EAOi+ RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi8QwDmukIA5rhBAOa3QQDktkAA5LU/AOSz PQDjsT0A4rA9AOKvPADirzwA4q88AOGuPQDirz0A4rA+AOOxPwDksj4A47E7AOOwOADjsDQA5LM0AOa6 PADmuj0A5ro8AOa6PADmujwA5ro8AOa6PADmujwA5ro8AOa6PADmujwA5ro8B+a6O9nmujX/5rgu/+W3 KP/ltSL/5LMe/+SyG//jsRj/47EX/+OxF//jsRj/5LIa/+SzHf/ktSH/5bYm/+W3LP/muTP/5rk6/ea5 Oy7muTsA5rk7AOa5OwDmuTsA5rk7AOa5OwDmuTsA5rk7AOa5OwDmuTsA5rk8AOW1NgDkszUA5LQ5AOW1 PADltj8A5bZAAOS2PwDksz0A47E9AOKvPQDirzwA4q88AOGvPADhrj0A4q89AOKwPgDisT4A5LE+AOSy QADks0EA5LRBAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2 QgD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wDovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+ RADovkQA6LxDAOa6QgDmuEEA5rdBAOS2QADktT8A5LM9AOOxPQDisD0A4q88AOKvPADirzwA4a49AOKv PQDisD4A47E/AOSyPgDjsTsA47A4AOOxNQDksjEA5bY0AOW4OgDmuj0A5ro9AOa6PQDmuj0A5ro9AOa6 PQDmuj0A5ro9AOa6PQDmuj0H5ro62ea5Mv/luCv/5bYm/+S0IP/jsxv/47IZ/+OxFv/jsRX/47EV/+Ox Ff/jshj/47Mb/+S0H//ltiT/5bcq/+W5Mf/mujn95ro8Lua6PADmujwA5ro8AOa6PADmujwA5ro8AOa6 PADmujwA5ro8AOa6PADmuDkA5bQyAOSzNgDktDkA5bU8AOW2PwDltkAA5LY/AOSzPQDjsT0A4q89AOKv PADirzwA4a88AOGuPQDirz0A4rA+AOKxPgDksT4A5LJAAOSzQQDktEEA5rZCAOa2QgDmtkIA5rZCAOa2 QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AOi+RADovkQA6L5EAOi+ RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovEMA5rpCAOa4QQDmt0EA5LZAAOS1 PwDksz0A47E9AOKwPQDirzwA4q88AOKvPADhrj0A4q89AOKwPgDjsT8A5LI+AOOxOwDjsDgA47E1AOSy MgDlsy8A5LIzAOWzNwDltzoA5ro6AOa6OwDmujsA5ro7AOa6OwDmujsA5ro7AOa6OwfmujjZ5bgw/+W3 Kf/ktST/5LQe/+OyGv/jsRf/47AU/+KwE//isBP/47AU/+OxFv/jshn/5LMd/+S1Iv/ltij/5bgv/+W4 Nv3muDou5rg6AOa4OgDmuDoA5rg6AOa4OgDmuDoA5rg6AOa4OgDltjkA5bQ1AOW1MQDltDIA5bM2AOS0 OQDltTwA5bY/AOW2QADktj8A5LM9AOOxPQDirz0A4q88AOKvPADhrzwA4a49AOKvPQDisD4A4rE+AOSx PgDkskAA5LNBAOS0QQDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2 QgDmtkIA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+ RADovkQA6L5EAOi8QwDmukIA5rhBAOa3QQDktkAA5LU/AOSzPQDjsT0A4rA9COKvPDrirzxK4q88HOGu PQDirz0A4rA+AOOxPwDksj4A47E7AOOwOADjsTUA5LIyAOWzMADksjMA5LA2AOKwOADkszkA5rg4AOe7 NwDnuzcA57s3AOe7NwDnuzcA57s3B+e6NdnmuC//5rYo/+W1Iv/ksx3/5LIY/+SwFf/jsBP/468R/+Ov Ef/jsBL/47AV/+SyGP/ksxz/5bQh/+W2J//mty3/5rc0/eW3OC7ltzgA5bc4AOW3OADltzgA5bc4AOW3 OADktTgA47E3AOOvNQDksjMA5bUxAOW0MgDlszYA5LQ5AOW1PADltj8A5bZAAOS2PwDksz0A47E9AOKv PQ/irzxC4q88ReGvPBLhrj0A4q89AOKwPgDisT4A5LE+AOSyQADks0EA5LRBAOa2QgDmtkIA5rZCAOa2 QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDovkQA6L5EAOi+ RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6LxDAOa6QgDmuEEA5rdBAOS2 QADktT8A5LM9AOOxPSvisD3M4q89/+KvPf/hrj304a49c+KvPQDisD4A47E/AOSyPgDjsTsA47A4AOOx NQDksjIA5bMwAOSyMwDksTYA4rA4AOOwOgDjsDoA5bU4AOe6NQDnuzUA57s1AOe7NQDnuzUH57oz2ea5 Lf/ltyb/5bUh/+SzG//kshf/47EV/+OwEv/jsBH/47AR/+OwEv/jsRT/5LIX/+SzGv/ltB//5bUl/+W2 K//ltjL95bY2LuW2NgDltjYA5bY2AOW2NQDltDYA4684AOKuOQDirzcA47A1AOSyMwDltTEA5bQyAOWz NgDktDkA5bU8AOW2PwDltkAA5LY/AOSzPQDjsT1I4rA94eKvPf/irz3/4a495+GuPVPirz0A4rA+AOKx PgDksT4A5LJAAOSzQQDktEEA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2 QgDmtkIA5rZCAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+ RADovkQA6L5EAOi+RADovEMA5rpCAOa4QQDmt0EA5LZAAOS1PwDksz0v5LM95OSzPf/ksz7/5LM+/+Oy Pf/isD3/4q89g+KwPgDjsT8A5LI+AOOxOwDjsDgA47E1AOSyMgDlszAA5LIzAOSxNgDisDgA47A6AOOw OgDjsDkA5LM4AOa5NADnuzMA57szAOe7MwfnujHZ5rgr/+W2Jf/ltCD/5LMb/+SxF//jsBT/47AS/+Ov Ef/jrxH/47AS/+OwFP/jsRb/5LMa/+WzH//ltST/5bUq/+W1MP3ltTMu5bUzAOW1MwDltTMA5LE2AOKu OADirTkA4q45AOKvNwDjsDUA5LIzAOW1MQDltDIA5bM2AOS0OQDltTwA5bY/AOW2QADktj8A5LM9UeSz Pfjksz7/5LM+/+SzPv/jsj3/4rA9/OKvPV3isD4A4rE+AOSxPgDkskAA5LNBAOS0QQDmtkIA5rZCAOa2 QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A6L5EAOi+ RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi8QwDmukIA5rhBAOa3 QQDktkAA5LU/L+S2P+Tltz//5bg//+W5P//luT//5bc//+S1P//ksz7/4rE+g+OxPwDksj4A47E7AOOw OADjsTUA5LIyAOWzMADksjMA5LE2AOKwOADjsDoA47A6AOSxOQDksTkA5LM3AOW2NADmuTEA5rkxB+a5 L9nmuCr/5bYk/+S0H//ksxr/47IX/+OxFP/jsBL/47AR/+OwEf/jsBL/47EU/+OxFv/ksxn/5LQe/+W1 I//ltSj/5LUu/eS0MS7ktDEA5LMyAOKwNQDirjgA4q04AOKtOQDirjkA4q83AOOwNQDksjMA5bUxAOW0 MgDlszYA5LQ5AOW1PADltj8A5bZAAOS2P1Hktj/45bc//+W5P//luT//5bg//+W3P//ktT//47I+/OKw Pl3isT4A5LE+AOSyQADks0EA5LRBAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2 QgDmtkIA5rZCAOa2QgD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wDovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+ RADovkQA6L5EAOi+RADovkQA6LxDAOa6QgDmuEEA5rdBAOS2QC/lt0Dk5rpA/+a6Pv/mujz/5ro6/+a6 Ov/muTr/5rg8/+W3Pf/ktD7/47I/g+SxPgDjsTsA47A4AOOxNQDksjIA5bMwAOSyMwDksTYA4rA4AOOw OgDjsDoA5LE5AOSxOQDkszcA5bQ1AOW2MQDluC4G5bct2Oa2KP/ltiL/5LQd/+SzGf/jsRb/47EU/+Ow Ev/jsBH/47AR/+OwEv/jsRT/47EW/+SzGf/ksx3/5bQh/+W1Jv/ktSv85LQuLeSzMADjsTMA4q82AOKu OADirTgA4q05AOKuOQDirzcA47A1AOSyMwDltTEA5bQyAOWzNgDktDkA5bU8AOW2PwDltkBR5bg/+Oa5 Pv/muj3/5ro7/+a6Ov/mujr/5rk7/+a4Pf/ltz//5LQ//OOxPl3ksT4A5LJAAOSzQQDktEEA5rZCAOa2 QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AOi+ RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovEMA5rpCAOa4 QQDmt0Ev5rhB5Oe6P//nujz/57o5/+e6Nv/nujX/57o0/+e5Nf/nuTb/5rg3/+W2Ov/ltDz/47I9g+Ox OwDjsDgA47E1AOSyMgDlszAA5LIzAOSxNgDisDgA47A6AOOwOgDksTkA5LE5AOSzNwDltDUC5bYyJOa2 LmPmtyru5rYl/+W1If/lsxz/5bIZ/+SxFv/ksRT/5LAS/+SwEv/ksBL/5LAS/+SwFP/ksRb/5bIY/+Wz HP/ltCD/5bQl/+W1Kf/ktC1i5LMxCuOxMwDirzYA4q44AOKtOADirTkA4q45AOKvNwDjsDUA5LIzAOW1 MQDltDIA5bM2AOS0OQDltTwA5bY/Uea3PvjnuTv/57o4/+e6Nv/nujX/57o1/+e6Nf/nuTb/57k4/+a5 O//mtz7/5LRA/OSyP13ksj8A5LNBAOS0QQDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2 QgDmtkIA5rZCAOa2QgDmtkIA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+ RADovkQA6L5EAOi+RADovkQA6L5EAOi8QwDmukIA5rhBL+e6QeTnu0D/57s8/+e7OP/nuzT/57oy/+e5 MP/nuTD/5rkw/+a5Mf/muTL/5rg0/+W2N//kszn/47E6g+OwOADjsTUA5LIyAOWzMADksjMA5LE2AOKw OADjsDoA47A6AOSxOQHksTkw5LM3guW0NM3ltjD55rYr/+W2KP/mtiP/5bUf/+W0G//kshj/5LIW/+Sx FP/ksRP/5LES/+OwEv/ksRL/5LEU/+SyFv/ksxj/5bMb/+W0Hv/ltSP/5bUm/+W1K//ksy/p47EzreKv NlvirjgU4q04AOKtOQDirjkA4q83AOOwNQDksjMA5bUxAOW0MgDlszYA5LQ5AOW1PFHmtzv45rk4/+e5 Nv/nujP/5roy/+e5MP/nuTD/5rkw/+a6Mf/nujP/57o2/+a5Ov/muD7/5LVA/OSzQF3ks0AA5LRBAOa2 QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wDovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADovkQA6LxDAOa6 Qi/nukLk57xB/+e7PP/nuzf/57o0/+e5MP/nuC3/57gr/+a4K//muCv/5rgs/+a4Lv/muC//5rcy/+W1 NP/kszb/47A3g+OxNQDksjIA5bMwAOSyMwDksTYA4rA4AOOwOg7jsDpk5LI4xuSzNv3ltDP/5bUw/+W2 LP/ltij/5rYl/+W1Iv/ltB7/5LMb/+SyGP/kshf/5LEV/+SxE//ksRP/5LET/+SxE//ksRX/5LIX/+Sy GP/ksxr/5bMe/+W0Iv/ltSX/5bUo/+W1LP/kszD/5LIz/+OwNuzirjib4q05NeKuOQDirzcA47A1AOSy MwDltTEA5bQyAOSzNgDktDlR5bY4+Oa4Nv/muDP/5rkx/+a5L//muC3/5rgr/+a4K//muCv/5rgt/+a5 L//muTL/57k2/+a5O//muD//5LZB/OSzQF3ktEEA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2 QgDmtkIA5rZCAOa2QgDmtkIA5rZCAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AOi+RADovkQA6L5EAOi+RADovkQA6L5EAOi+ RADovkQA6L5EAOi+RADovkQA6L5EAOi+RADnvUMv57xD5Oi9Q//ovT//57w5/+e7Nf/nujD/57kt/+a4 Kv/muCj/5rgn/+a3J//mtyj/5rcp/+a4K//mty3/5bcw/+W1Mv/kszT/47E0g+SyMgDlszAA5LIzAOSw NhLjsDh75LI35OSzNv/ltTT/5bYy/+W3MP/mtyz/5bcp/+W3J//ltST/5bUg/+W1Hf/ktBv/5LMZ/+Sy F//kshb/5LIW/+SyFf/kshX/5LIV/+SyF//kshf/5LMZ/+S0G//ltB3/5bQg/+W1JP/ltif/5bYp/+W2 Lf/ltTD/5LQy/+OyNf/jsDb94q84uuKvN0LjsDUA5LIzAOW1MQDltDIA5bQ2UeW1NvjmtzT/5rgx/+a4 Lv/muCz/5rgq/+a4KP/muCf/5rgn/+a4J//muCn/57gs/+a5L//mujP/57s4/+e6Pf/mukH/5bZC/OS1 QV3mtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgDmtkIA////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A6cBEAOnARADpwEQA6cBEAOnARADpwEQA6cBEAOnARADpwEQA6cBEAOnARADpwEQA6b9EJui+ ROPpv0T/6b9D/+m+Pv/ovDf/6Lsz/+e6Lv/nuSr/57cn/+a3Jf/mtyT/5rck/+a2Jf/mtiX/5rcn/+a3 Kf/mtyv/5rYt/+W0L//lszH/5LMxgeWzMALksjNs5LI05+WzNP/ltDP/5rYy/+a3MP/mty//5rcs/+a3 Kv/mtyj/5rYl/+a1Iv/mtSD/5bQe/+W0HP/lsxr/5bMZ/+WyGP/lshj/5bIX/+WyF//lshj/5bIY/+Wz GP/lsxr/5bQc/+W0Hv/mtSD/5rUi/+a2Jf/mtif/5rcp/+a2Lf/mti//5bUx/+W0Mv/ksjP/5LE0/+Ox NbfksjMx5bUxAOW0MlDltDP45rYx/+a3Lv/muCz/57cq/+e3KP/ntyb/5rcl/+a2JP/mtiT/5rcl/+e3 Jv/nuCn/57gt/+e6Mv/ouzX/6Lw7/+i8Qf/nukP/5rdC/eW2QlXmtkIA5rZCAOa2QgDmtkIA5rZCAOa2 QgDmtkIA5rZCAOa2QgDmtkIA5rZCAOa2QgD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wDqwUYA6sFGAOrBRgDqwUYA6sFGAOrB RgDqwUYA6sFGAOrBRgDqwUYA6sFGAOrBRgDqwUaw6sFG/+rBRv/qwUP/6b88/+i9Nv/nuzH/57ot/+e4 KP/mtyX/5rcj/+a2Iv/mtiH/5rYh/+a2Iv/mtiT/5rYm/+a3J//mtyj/5rYr/+a2LP/ltS755bUv3+W1 L//ltS//5rYv/+a3L//muC7/5rgt/+a4LP/muCr/57co/+a3Jv/mtiX/5rYi/+a2If/ltR//5bUd/+W0 HP/ltBv/5bQa/+WzGv/lsxr/5bMa/+WzGv/ltBr/5bQb/+W0HP/ltR3/5bUf/+a2IP/mtiP/5rYl/+a3 Jv/mtyj/5rcq/+a3LP/mty3/5rYu/+W1MP/ltTD/5bUw/+W0MPXltTCm5rUv7ea3Lv/mtyz/5rcq/+a3 KP/mtyf/5rcl/+a3I//mtiL/5rYh/+a2Iv/mtiP/5rcl/+e4J//nuSv/57ow/+i7Nf/ovTr/6L5B/+i+ RP/nu0T/57lE4+e6RBLnukQA57pEAOe6RADnukQA57pEAOe6RADnukQA57pEAOe6RADnukQA57pEAP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AOi/RgDov0YA6L9GAOi/RgDov0YA6L9GAOi/RgDov0YA6L9GAOi/RgDov0YA6L9GFOi/ Ru3pwEb/6sFG/+rAQ//pvzz/6L02/+e7Mf/nuSz/5rgn/+a3Jf/mtiL/5bUg/+W1IP/ltR//5bYg/+a2 If/mtiL/5rYk/+a2Jv/ltif/5rYo/+a2Kv/mtiv/5rcr/+a3LP/mtyz/5rcr/+a4K//muCr/57cp/+a3 KP/mtyf/5rcm/+a3Jf/mtyP/5rYi/+a2If/ltSD/5bUf/+W1H//ltR7/5bUe/+W1Hv/ltR7/5bUe/+W1 Hv/ltR7/5bUf/+W1IP/mtiD/5rYi/+a3I//mtyX/5rcm/+a3J//mtyj/5rcp/+a3K//mtyv/5rcs/+a3 LP/mty3/5rYs/+a2LP/mtyv/5rcp/+a3KP/mtyf/5rYl/+a2I//mtiL/5bYg/+W1IP/ltSD/5bUg/+a2 If/mtyT/5rcn/+e5Kv/nujD/6Lw1/+i+O//pv0H/6b9G/+i+Rf/ovEX/6L1FRei9RQDovUUA6L1FAOi9 RQDovUUA6L1FAOi9RQDovUUA6L1FAOi9RQDovUUA////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A6L1GAOi9RgDovUYA6L1GAOi9 RgDovUYA6L1GAOi9RgDovUYA6L1GAOi9RgDovUYT6L1G6+i+Rv/pwEf/6b9C/+m+PP/pvDf/6Lsx/+i6 LP/muSj/57ck/+a2Iv/ltiD/5bUe/+W1Hv/ltR7/5bUf/+a2IP/mtiH/5rYj/+a2Jf/mtyb/5rcn/+a3 J//mtyj/5rcp/+e3Kf/nuCn/57gp/+e4KP/nuCj/5rgn/+a4Jv/nuCb/57gm/+e3Jf/ntyT/57ck/+e3 JP/mtyP/5rcj/+a2I//mtiL/5rYi/+a2Iv/mtiL/5rYi/+a2I//mtyP/57cj/+e3JP/ntyT/57cl/+e4 Jv/nuCb/57gm/+a4J//nuCj/57gp/+e4Kf/muCn/5rcp/+a3Kf/mtyn/5rco/+a3J//mtyf/57cl/+e2 JP/mtiL/5rYh/+a2IP/ltR//5bUe/+W1Hv/lth//5rYh/+e3JP/nuCf/6Lor/+i7MP/pvTX/6b87/+rA Qv/qwkf/6sFH/+nAR//owEdC6MBHAOjARwDowEcA6MBHAOjARwDowEcA6MBHAOjARwDowEcA6MBHAOjA RwD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wDou0YA6LtGAOi7RgDou0YA6LtGAOi7RgDou0YA6LtGAOi7RgDou0YA6LtGAOi7 RgDoukWp6LtG/+m9R//pvkT/6b4+/+m8OP/ouzP/6Lou/+e5KP/ntyX/57ci/+a2IP/mtR7/5rUe/+a1 Hv/mtR7/5rUe/+a2IP/mtiH/5rUi/+e2JP/ntiX/57Yl/+e3Jv/ntyf/57cn/+e3J//nuCf/57gn/+e4 J//nuCf/57gn/+e4J//nuCf/57gn/+e4J//ntyf/57cn/+e3KP/ntyj/57co/+e3KP/ntyj/57cn/+e3 J//ntyf/57cn/+e3J//ntyf/57cn/+e3J//nuCf/57gn/+e4J//nuCf/57gn/+e4KP/nuCj/57co/+e3 KP/ntyf/57cn/+e3J//ntyb/57Yl/+e2Jf/ntiP/5rYi/+a2IP/mtR//5rUe/+a1Hv/mtR7/5rUe/+a1 IP/mtiL/57cl/+e4KP/ouiz/6Lwx/+m9N//pvz3/6sFD/+vCSP/rwkj/68JI2+vCSA7rwkgA68JIAOvC SADrwkgA68JIAOvCSADrwkgA68JIAOvCSADrwkgA68JIAP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AOe6RgDnukYA57pGAOe6 RgDnukYA57pGAOe6RgDnukYA57pGAOe6RgDnukYA57pGAOe5RR/muEXb6LtH/+i9Rf/pvT//6Lw6/+i7 NP/oui//57kr/+e4J//ntyT/5rYh/+a2H//mtR7/5rUd/+a1Hf/mtR3/5rUe/+a2H//mtiD/5rYh/+a2 Iv/ntiT/57Yl/+e3Jv/nuCb/57gm/+e4J//nuSj/57go/+e5KP/nuSn/57kq/+e5Kv/nuCv/57kr/+e5 LP/nuSz/57ks/+e5LP/nuS3/57kt/+e5Lf/nuS3/57gs/+e5LP/nuSz/57gs/+e4LP/nuSv/57gr/+e4 Kv/nuCr/57gq/+e5Kf/nuSj/57ko/+e5KP/nuCf/57cm/+e3Jv/ntyb/57cl/+e2Jf/mtiP/5rYi/+a2 If/mtiD/5rUf/+a1Hv/mtR3/5rUd/+a1Hv/mth//5rYg/+a3I//nuCb/57kp/+i6Lv/ovDP/6b05/+m/ P//qwEX/6sFI/+nASPjqwUhK68JJAOvCSQDrwkkA68JJAOvCSQDrwkkA68JJAOvCSQDrwkkA68JJAOvC SQDrwkkA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A57pGAOe6RgDnukYA57pGAOe6RgDnukYA57pGAOe6RgDnukYA57pGAOe6 RgDnukYA57lFAOa3RSXmuEbc57tG/+i8Qf/ovDz/6Lw3/+e6Mv/ouS3/57kp/+e3Jv/mtyP/5rYg/+a1 Hv/mtR7/5rUd/+a1Hf/mtR3/5rUe/+a2H//mtiD/5rYi/+a3I//mtyT/57cl/+e4Jv/nuCb/57gn/+e5 Kf/nuSr/57kr/+e5Lf/nuS3/57ov/+e6L//nui//57ow/+e6Mf/nujL/57oy/+e5Mv/nuTL/57ky/+e5 Mv/nuTL/57ky/+e6Mv/nuTH/57kx/+e5MP/nuS//57ov/+e5Lv/nuS3/57ks/+e5K//nuSr/57kp/+e4 J//nuCb/57gm/+e3Jf/mtyT/5rcj/+a3Iv/mtiH/5rYg/+a1Hv/mtR7/5rUd/+a1Hf/mtR7/5rUe/+a2 IP/mtyL/57cl/+e5KP/nuiz/6Lsx/+i8N//ovjz/6b9C/+m/R//ovkj46L5IUerBSADrwkkA68JJAOvC SQDrwkkA68JJAOvCSQDrwkkA68JJAOvCSQDrwkkA68JJAOvCSQD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDnukYA57pGAOe6 RgDnukYA57pGAOe6RgDnukYA57pGAOe6RgDnukYA57pGAOe6RgDnuUUA5rdFAOW2RiXnt0fc6LpE/+i7 P//ouzr/6Ls0/+i6MP/ouSz/6Lgo/+e3Jf/ntiL/57Ug/+e1H//ntR7/5rUe/+a1Hv/ntR7/57Uf/+e2 IP/ntiH/57cj/+e3JP/ntyb/6Lgn/+i4KP/ouSr/6Lks/+i6Lf/oui//6Low/+i6Mf/ouzL/6Lo0/+i6 Nf/oujb/6Lo3/+i6OP/oujj/57k4/+e5Of/nuTn/57k5/+e5OP/nuTj/6Lk4/+i5N//oujb/6Lo1/+i6 NP/oujP/6Loy/+i6Mf/oui//6Lou/+i5Lf/ouSv/6Lkp/+i5KP/ouCf/57cm/+e3JP/ntyP/57Yi/+e2 IP/ntR//57Ue/+e1Hv/ntR7/57Ue/+e1H//ntSD/57Yi/+e3Jf/ouCf/6Lor/+m6L//pvDT/6b05/+m+ P//pvkT/6b1I+Oi9SFHovkgA6sFIAOvCSQDrwkkA68JJAOvCSQDrwkkA68JJAOvCSQDrwkkA68JJAOvC SQDrwkkA68JJAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AOe6RgDnukYA57pGAOe6RgDnukYA57pGAOe6RgDnukYA57pGAOe6 RgDnukYA57pGAOe5RQDmt0UA5bZGAOa2RiXnt0bc57lB/+i7PP/ouzf/6Loy/+i6Lv/ouCr/57gn/+e4 JP/ntyH/57Yg/+e2H//mtR7/5rUe/+e2Hv/nth//57Yh/+e3Iv/ntyT/57gm/+e4J//ouSj/6Loq/+i6 Lf/oui//6Lsw/+i7Mv/ouzT/6Ls2/+i7OP/ouzn/6Lo6/+e5Of/mtzf/5rU1/+a1Nv/mtTj/5rQ5/+a0 Of/mtDn/5bQ4/+W0Nv/ltDX/5rU1/+a3N//nuDn/6Lk5/+i6OP/oujf/6Lo1/+i6M//oujH/6Low/+i6 Lv/ouSz/6Lkq/+i5KP/nuCf/57gl/+e3I//ntyL/57Yg/+e2H//nth7/5rUe/+a1Hv/nth//57Yg/+e3 Iv/nuCT/57gn/+i6Kf/oui7/6bsy/+m9N//pvT3/6b1C/+m9R/jovUlR6L1IAOi+SADqwUgA68JJAOvC SQDrwkkA68JJAOvCSQDrwkkA68JJAOvCSQDrwkkA68JJAOvCSQDrwkkA////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A57pFAOe6 RQDnukUA57pGAOe6RgDnukYA57pGAOe6RgDnukYA57pGAOe6RgDnukYA57lFAOa3RQDltkYA5rZGAOa2 RyXmuETc57k+/+i7Ov/ouzb/6Lox/+i6Lf/ouSn/57km/+e4JP/ntyH/57cg/+a2H//mth//57cf/+e3 IP/ntyL/57gk/+e4Jv/nuSj/6Lop/+i6LP/oui//6Lsw/+i7Mv/ovDX/6Lw3/+i7Ov/ouzv/57k6/+a2 N//mtjr/57pJ/+rBX//tyXb/78+J//HUl//y16H/8tij//LYo//x1pz/8NGR/+7Mgf/rxGv/6L1U/+a2 QP/ltDf/5rY3/+e5Ov/oujr/6Ls4/+i7Nv/ouzT/6Lsx/+i7L//oui7/6Lkr/+e5Kf/nuSf/57gl/+e4 I//ntyL/57cg/+a2H//mth//5rYf/+e3IP/ntyH/57gk/+e4Jv/ouin/6Lst/+i7Mf/ovTb/6b07/+m9 QP/ovUX46L1JUei9SQDovUgA6L5IAOrBSADrwkkA68JJAOvCSQDrwkkA68JJAOvCSQDrwkkA68JJAOvC SQDrwkkA68JIAOvCSAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wDpvEsA6bxLAOi7SgDnukcA57pFAOe6RgDnukYA57pGAOe6 RgDnukYA57pGAOe6RgDnuUUA5rdFAOW2RgDmtkYA5rZHAOa3RSXnuELc6Lo9/+m7Of/puzT/6bow/+m5 LP/nuSj/6Lgm/+i3JP/otyL/57ch/+e3If/otyL/6Lcj/+i4JP/nuCb/57ko/+i6Kv/pui3/6bow/+m7 Mv/pvDX/6bw4/+m8O//ovDz/57k6/+e3Ov/ovE//7cl2//LXn//14br/9+bI//jozf/46M3/+OjM//jn y//458v/+OfL//jnzP/46M3/+OjN//jny//35MP/9N2v/+/QjP/qwWH/5rZA/+a0N//nuDv/6Lo7/+i7 Of/ouzf/6Ls0/+i7Mf/oui//6bos/+i5Kf/nuCf/6Lgm/+i4I//otyL/57ch/+e2If/ntyH/6Lci/+i3 JP/ouCb/57ko/+m6LP/puzD/6bw0/+m9Of/pvT7/6b1D+Oi9R1HovUkA6L1JAOi9SADovkgA6sFIAOvC SQDrwkkA68JJAOvCSQDrwkkA68JJAOvCSQDrwkkA68JJAOvBSwDrwUwA68FMAP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AO3D WgDtw1oA7MFXAOq+UwDpu00A57pHAOe6RQDnukYA57pGAOe6RgDnukYA57pGAOe5RQDmt0UA5bZGAOa2 RgDmtkcA5rdFAOe3QyXouj/c6bs7/+m8Nv/puzL/6bsu/+m6K//ouSj/6Lkm/+i4JP/ouCP/6Lgj/+i4 JP/ouCX/6Lkn/+i5Kf/puiv/6bsv/+m7Mv/pvDT/6b03/+m9Ov/pvD3/6Lo8/+e4O//rwVv/8dOU//bi v//46M7/+OfN//fmyf/35cb/9+XG//flxv/35cb/9+XG//flxv/35cb/9+XG//flxv/35cb/9+XG//fm x//458v/+OjO//fmyv/03K7/7ch4/+e4Rv/mtTj/6Lo8/+m7O//pvDj/6bw1/+m7Mv/puzD/6bot/+i6 Kv/ouSj/6Lkm/+i4JP/ouCP/6Lgj/+i4I//ouCT/6Lkm/+i5KP/puir/6bsu/+m8M//qvjf/6r48/+q+ QvjpvkVR6L1HAOi9SQDovUkA6L1IAOi+SADqwUgA68JJAOvCSQDrwkkA68JJAOvCSQDrw0kA68JJAOq/ TADpu08A6btSAOu9VADrvVQA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A7cNZAO3DWQDswVcA6r5UAOq8VADpu1EA6LtMAOe6 RwDnukUA57pGAOe6RgDnukYA57lFAOa3RQDltkYA5rZGAOa2RwDmt0UA57dDAOi6QSXpuz7c6bw5/+m8 Nf/puzH/6bst/+i6Kv/ouSj/6Lkn/+i4Jv/ouCb/6Lkn/+i5KP/ouir/6bst/+m7MP/pvDP/6b02/+m9 Of/pvT3/6bw+/+e5Ov/qv1H/8tWV//fmx//46c//+OfJ//fmx//35sf/9+bH//fmx//35sf/9+bH//fm x//35sf/9+bH//fmx//35sf/9+bH//fmx//35sf/9+bH//fmx//35sf/9+bH//jozP/46c//9d+2/+zH cv/mtj7/57g7/+i7Pf/pvDr/6bw3/+m8NP/puzH/6bsv/+i6K//ouSn/6Lkn/+i5Jv/ouCX/6Lgl/+i5 Jv/ouSj/6Loq/+m7Lf/pvDH/6b41/+q/Ov/qv0D46r9EUOm+RgDovEcA6L1JAOi9SQDovUgA6L5IAOrB SADrwkkA68JJAOvCSQDrw0gA68JJAOq/TADpu08A6LlRAOm6UQDpvFMA671UAOu9VAD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wDtw1kA7cNZAOzBVwDqvlQA6rxTAOm7UwDpu1MA6btRAOi7TADnukcA57pGAOe6RgDnuUUA5rdFAOW3 RgDmt0YA5rdGAOa3RQDnt0MA6LpBAOm8PyLpvjzc6b03/+m8M//pvC//6Lss/+i6Kv/ouin/6Lop/+i6 Kf/ouir/6Lsr/+m8Lv/pvDH/6bw0/+m+OP/pvjv/6b4//+m8Pv/ou0D/7sx7//fjwP/56dD/+OfJ//jm x//45sf/+ObH//jmx//45sf/+ObH//jmx//45sf/+ObH//jmx//45sf/+ObH//jmx//45sf/+ObH//jm x//45sf/+ObH//jmx//45sf/+ObH//jmyP/56Mz/+ejO//PZpP/pvlb/5rY5/+i7P//pvDz/6b05/+m9 Nv/pvDP/6bsw/+i7Lf/ouir/6Lop/+i6KP/ouij/6Lop/+i6Kv/ouyz/6bww/+m9M//qvzj/6sE99erB QlDqv0QA6b5GAOi8RwDovUkA6L1JAOi9SADovkgA6sFIAOvCSQDrwkkA68JJAOq/TADqu1AA6LpRAOi5 UADouVAA6bpRAOm8UwDrvVQA671UAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AO3DWQDtw1kA7MFXAOq+VADqvFMA6btSAOm7 UgDpu1IA6btTAOm8TgDrv0EA679CAOu/QgDrv0IA679CAOu/QgDrv0IA679CAOu/QQDrv0EA679BCOq/ PtDqvjn/6r01/+q8Mv/puy//6bss/+m6LP/puiv/6bos/+m7Lf/pvDD/6r0y/+q9Nv/qvjn/6r48/+q/ Qf/pvD7/6r9O//PYnv/56dD/+OfM//jmyf/45sn/+ObJ//jmyf/45sn/+ObJ//jmyf/45sn/+ObJ//jm yf/45sn/+ObJ//jmyf/45sn/+ObJ//jmyf/45sn/+ObJ//jmyf/45sn/+ObJ//jmyf/45sn/+ObJ//jm yf/45sn/+enQ//fkwv/tyHL/57c8/+m7P//qvT7/6r07/+q9N//qvDT/6rwx/+m7Lv/puiz/6bor/+m6 K//puiv/6bst/+m7L//qvDL/6r42/+u/O//rwT+R68FBAOvAQgDqv0MA6r9EAOq/RQDqv0UA6r9EAOq/ RADrwUQA68FFAOvASADpvFEA6blSAOm6UQDoulEA6LlQAOi5UADpulEA6bxTAOu9VADrvVQA////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A7cNZAO3DWQDswVcA6r5UAOq8UwDpu1IA6btSAOm7UgDpu1IA6btSAOvASQDrwkYA68JGAOvC RgDrwkYA68JGAOvCRgDrwkYA68JGAOvCRgDrwUV568BA/+u/O//qvzf/6r00/+m8Mf/pvC//6bwu/+m8 Lv/pvC//6rwx/+q9M//qvjb/6r86/+q/Pv/qv0L/6bw+/+vDWf/24LX/+erS//jnyf/458n/+OfJ//jn yf/458n/+OfJ//jnyf/458n/+OfJ//jnyf/458n/+OfJ//jnyf/458n/+OfJ//jnyf/458n/+OfJ//jn yf/458n/+OfJ//jnyf/458n/+OfJ//jnyf/458n/+OfJ//jnyf/458n/+OjN//np0P/w0In/6Lg//+m7 QP/qvT//6r48/+q+OP/qvTT/6rwy/+m8MP/pvC7/6bst/+m7Lf/pvC//6rwx/+q+NP/qvjj/6788/+rA QeXrwEUZ68BFAOvARQDrwUQA68FEAOvBRADrwUQA68BEAOvARADrwEQA6rxMAOm6UgDpulIA6bpRAOi6 UQDouVAA6LlQAOm6UQDpvFMA671UAOu9VAD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wDtw1kA7cNZAOzBVwDqvlQA6rxTAOm7 UgDpu1IA6btSAOm7UgDpulIA6r5OAOzFTADsxEwA7MRMAOzETADsxEwA7MRMAOzETADsxEwA7MRMG+vD R+rrwUH/68A9/+q/OP/qvTX/6r0z/+m8Mf/pvDH/6bwx/+m9Mv/qvjT/6r44/+q/O//qwD7/6sBD/+m9 P//sxWD/9+S///np0f/458r/+OfK//jnyv/458r/+OfK//jnyv/458r/+OfK//jnyv/458r/+OfK//jn yv/458r/+OfK//jnyv/458r/+OfK//jnyv/458r/+OfK//jnyv/458r/+OfK//jnyv/458r/+OfK//jn yv/458r/+OfK//jnyv/458r/+OjM//nq0//x1JX/6LlD/+m8Qf/qvkD/6r49/+q+Of/qvTb/6r0z/+m8 Mv/pvDD/6bww/+m8Mf/qvTP/6r41/+q+Of/qvz3/6r9B/+rARozqwEcA6sBHAOrARwDqwEcA6sBHAOrA RwDqwEcA6sBHAOq/SADpuk8A6btSAOm6UgDpulEA6LpRAOi5UADouVAA6bpRAOm8UwDrvVQA671UAP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AO3DWQDtw1kA7MFXAOq+VADqvFMA6btSAOm7UgDpu1IA6btSAOm7UgDpu08A7MRPAO3G TwDtxk8A7cZPAO3GTwDtxk8A7cZPAO3GTwDtxk2H7cRI/+zCQv/swT3/6786/+u+N//rvjT/6r0z/+q9 M//qvTT/6741/+u/OP/rvzz/68A//+vBRP/qv0H/7cZe//flwv/56tH/+OjL//joy//46Mv/+OjL//jo y//46Mv/+OjL//joy//46Mv/+OjL//joy//46Mv/+OjL//joy//46Mv/+OjL//joy//46Mv/+OjL//jo y//46Mv/+OjL//joy//46Mv/+OjL//joy//46Mv/+OjL//joy//46Mv/+OjL//joy//46Mv/+OjM//nr 1P/y1ZX/6LlC/+q9Q//qv0H/6789/+q/Of/rvjf/6741/+q9M//qvTP/6r0z/+u+NP/rvjf/6786/+vA Pv/rwEL/679G8Oq+SSLqvkkA6r5JAOq+SQDqvkkA6r5JAOq+SQDqvkkA6btLAOm6TwDpu1IA6bpSAOm6 UQDoulEA6LlQAOi5UADpulEA6bxTAOu9VADrvVQA////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A7cNZAO3DWQDswVcA6r5UAOq8 UwDpu1IA6btSAOm7UgDpu1IA6btSAOm6TwDqvk4A7MZQAOzGUADsxlAA7MZQAOzGUADsxlAA7MZQGO3F TensxEf/7MND/+vBPv/rwDv/6784/+u/Nv/rvzX/6741/+u/N//rvzn/68A8/+zBQP/rwUT/68BE/+zD VP/24rv/+erT//jozP/46Mz/+OjM//jozP/46Mz/+OjM//jozP/46Mz/+OjM//jozP/46Mz/+OjM//jo zP/46Mz/+OjM//jozP/46Mz/+OjM//jozP/46Mz/+OjM//jozP/46Mz/+OjM//jozP/46Mz/+OjM//jo zP/46Mz/+OjM//jozP/46Mz/+OjM//jozP/46Mz/+OjN//nr1f/w0If/6Lo//+q+RP/rv0H/68A9/+u/ Ov/rvzj/6742/+q+Nf/qvzX/6782/+u/Of/rwDv/68A+/+vAQv/qv0b/6r1Kieq+SwDqvksA6r5LAOq+ SwDqvksA6r5LAOm9SwDpuU0A6bpPAOm7UgDpulIA6bpRAOi6UQDouVAA6LlQAOm6UQDpvFMA671UAOu9 VAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wDtw1kA7cNZAOzBVwDqvlQA6rxTAOm7UgDpu1IA6btSAOm7UgDpu1IA6bpPAOm6 TQDswlAA7cVRAO3FUQDtxVEA7cVRAO3FUQDtxVB17MRM/+zDR//swkP/68E+/+vAO//rvzn/6784/+u/ OP/rvzn/68A6/+vAPf/swUD/7MJE/+vCR//rwUj/9N2m//nr1v/46c7/+OnO//jpzv/46c7/+OnO//jp zv/46c7/+OnO//jpzv/46c7/+OnO//jpzv/46c7/+OnO//jpzv/46c7/+OnO//jpzv/46c7/+OnO//jp zv/46c7/+OnO//jpzv/46c7/+OnO//jpzv/46c7/+OnO//jpzv/46c7/+OnO//jpzv/46c7/+OnO//jp zv/46c7/+OrQ//jq0P/tyG3/6btB/+vARf/rwEH/68A9/+u/O//rvzn/6783/+u/N//rvzj/68A6/+vA PP/rwD//68BD/+u/Rv/qvUnm6bxLFem8SwDpvEsA6bxLAOm8SwDpvEsA6LpLAOi5TQDpuk8A6btSAOm6 UgDpulEA6LpRAOi5UADouVAA6bpRAOm8UwDrvVQA671UAP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AO3DWQDtw1kA7MFXAOq+ VADqvFMA6btSAOm7UgDpu1IA6btSAOm7UgDpu08A6bpNAOq8TQDtxFEA7cRRAO3EUQDtxFEA7cRRBO3E T9DsxEr/7cNG/+zDQv/swj//7ME8/+zAO//swDr/7MA6/+zAO//swT3/7MJA/+zDRP/sw0n/7MFF//HU iP/569f/+enP//npz//56c//+enP//npz//56c//+enP//npz//56c//+enP//npz//56c//+enP//np z//56c//+enP//npz//56c//+enP//npz//56c//+enP//npz//56c//+enP//npz//56c//+enP//np z//56c//+enP//npz//56c//+enP//npz//56c//+enP//npz//56c//+uvT//flwf/rwFX/6r5E/+zB Rf/swUH/7ME9/+zAPP/swDr/7MA6/+zAOv/swTv/7MA9/+zBP//swUP/68BF/+u+SP/pvExn6bxMAOm8 TADpvEwA6bxMAOm7SwDouUsA6LlNAOm6TwDpu1IA6bpSAOm6UQDoulEA6LlQAOi5UADpulEA6bxTAOu9 VADrvVQA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A7cNZAO3DWQDswVcA6r5UAOq8UwDpu1IA6btSAOm7UgDpu1IA6btSAOm7 TwDpuk0A6btLAOvATgDsw1EA7MNRAOzDUQDsw1FC7cRN/+zESf/tw0X/7MNC/+zBP//swT3/7MA8/+zA PP/swTz/7ME+/+zCQP/twkT/7cNI/+zDSP/uyWP/+enM//nr0//56tD/+erQ//nq0P/56tD/+erQ//nq 0P/56tD/+erQ//nq0P/56tD/+erQ//nq0P/56tD/+erQ//nq0P/56tD/+erQ//nq0P/56tD/+erQ//nq 0P/56tD/+erQ//nq0P/56tD/+erQ//nq0P/56tD/+erQ//nq0P/56tD/+erQ//nq0P/56tD/+erQ//nq 0P/56tD/+erQ//nq0P/56tD/+u3Z//PZnv/qvUT/7MFI/+zBRf/swUH/7ME+/+zBPf/swDz/7MA8/+zB PP/swT3/7ME//+zBQv/swUX/679I/+q9S8DpvEwA6bxMAOm8TADpvEwA6bpKAOi5SwDouU0A6bpPAOm7 UgDpulIA6bpRAOi6UQDouVAA6LlQAOm6UQDpvFMA671UAOu9VAD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDtw1kA7cNZAOzB VwDqvlQA6rxTAOm7UgDpu1IA6btSAOm7UgDpu1IA6btPAOm6TQDpu0wA6r1LAOzCTwDsw08A7MNPAOzD T5TsxEz/7cRI/+zDRf/sw0L/7MI//+zCPf/swT3/7ME9/+zCPv/swkH/7MNE/+3ER//txUv/7MNK//Xd p//67Nn/+erR//nq0f/56tH/+erR//nq0f/56tH/+erR//nq0f/56tH/+erR//nq0f/56tH/+erR//nq 0f/56tH/+erR//nq0f/56tH/+erR//nq0f/56tH/+erR//nq0f/56tH/+erR//nq0f/56tH/+erR//nq 0f/56tH/+erR//nq0f/56tH/+erR//nq0f/56tH/+erR//nq0f/56tH/+erR//nq0f/56tL/+evU/+7J bP/rv0X/7MJI/+zCRP/swkH/7MI//+zCPf/swT3/7ME9/+zCPv/swUD/7MJC/+zCRf/rwUf/6r5J+eq8 SijqvEoA6rxKAOm7SgDpukoA6LlLAOi5TQDpuk8A6btSAOm6UgDpulEA6LpRAOi5UADouVAA6bpRAOm8 UwDrvVQA671UAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AO3DWQDtw1kA7MFXAOq+VADqvFMA6btSAOm7UgDpu1IA6btSAOm7 UgDpu08A6bpNAOm7TADqvEsA679MAO3CTQDtwk0H7cNM2e3ESv/txEb/7cND/+3DQf/twj//7cI+/+3B Pf/twj7/7cJA/+3DQ//txEb/7sVL/+3ESv/wzm//+ezU//nr0//569L/+evS//nr0v/569L/+evS//nr 0v/569L/+evS//nr0v/569L/+evS//nr0v/569L/+evS//nr0v/569L/+evS//nr0v/569L/+evS//nr 0v/569L/+evS//nr0v/569L/+evS//nr0v/569L/+evS//nr0v/569L/+evS//nr0v/569L/+evS//nr 0v/569L/+evS//nr0v/569L/+evS//nr0v/67dn/9d+u/+u/Sv/swkr/7cNH/+3DRP/twkH/7cI//+3B Pf/twT3/7cI+/+3CQP/twkH/7MJE/+zBRv/rv0j/6r1Kbuq9SgDqvEkA6btJAOm6SgDouUsA6LlNAOm6 TwDpu1IA6bpSAOm6UQDoulEA6LlQAOi5UADpulEA6bxTAOu9VADrvVQA////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A7cNZAO3D WQDswVcA6r5UAOq8UwDpu1IA6btSAOm7UgDpu1IA6btSAOm7TwDpuk0A6btMAOq8SwDrvksA7MFLAOzC TDbtw0r/7cRI/+3DRf/tw0L/7cNA/+3CP//twj//7cI//+3CQP/tw0P/7cRF/+7FSf/uxk3/7cVN//bf qf/67dv/+evT//nr0//569P/+evT//nr0//569P/+evT//nr0//569P/+evT//nr0//569P/+evT//nr 0//569P/+evT//nr0//569P/+evT//nr0//569P/+evT//nr0//569P/+evT//nr0//569P/+evT//nr 0//569P/+evT//nr0//569P/+evT//nr0//569P/+evT//nr0//569P/+evT//nr0//569P/+evT//nr 1P/57Nb/78pu/+zBSP/tw0r/7cRG/+3DQ//tw0L/7cI//+3CP//twj//7cJA/+3CQf/twkL/7MJF/+zB R//rv0iz675IAOq9SADpu0kA6bpKAOi5SwDouU0A6bpPAOm7UgDpulIA6bpRAOi6UQDouVAA6LlQAOm6 UQDpvFMA671UAOu9VAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wDtw1kA7cNZAOzBVwDqvlQP6rxTLem7UjDpu1Iv6btSL+m7 Ui/pu1Iv6btPL+m6TS/pu0wv6rxLL+u+Sy/rwUoj7MJKh+zDSP/sw0X/7cND/+3DQv/sw0D/7MM//+zD P//twkD/7cNC/+3ERf/txUj/7sZM/+7GTf/wzWf/+evR//ns1//57NX/+ezV//ns1f/57NX/+ezV//ns 1f/57NX/+ezV//ns1f/57NX/+ezV//ns1f/57NX/+ezV//ns1f/57NX/+ezV//ns1f/57NX/+ezV//ns 1f/57NX/+ezV//ns1f/57NX/+ezV//ns1f/57NX/+ezV//ns1f/57NX/+ezV//ns1f/57NX/+ezV//ns 1f/57NX/+ezV//ns1f/57NX/+ezV//ns1f/57NX/+ezV//rv3f/026P/68BJ/+3ETf/txEr/7cRF/+3D Q//tw0H/7MI//+zDP//swz//7cJA/+3CQf/swkP/7MJF/+zAR+nrv0c66r1ILOm7SS/pukov6LlLL+i5 TS/puk8v6btSL+m6Ui/pulEv6LpRL+i5UC/ouVAv6bpRGem8UwDrvVQA671UAP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AO3D WQDtw1kA7MFXcuu/VejqvlT+6r5U/eu+Vf3rv1X9675U/eu9Uf3qvU/96r1N/eu9S/3rvkv97MBK/ezB Sf3twkf+7cNG/+3DRP/tw0L/7cNA/+zDQP/swkD/7MNA/+3DQv/uxET/7sVH/+7GS//vx1D/7sZN//TZ kv/7797/+u3W//rt1v/67db/+u3W//rt1v/67db/+u3W//rt1v/67db/+u3W//rt1v/67db/+u3W//rt 1v/67db/+u3W//rt1v/67db/+u3W//rt1v/67db/+u3W//rt1v/67db/+u3W//rt1v/67db/+u3W//rt 1v/67db/+u3W//rt1v/67db/+u3W//rt1v/67db/+u3W//rt1v/67db/+u3W//rt1v/67db/+u3W//rt 1v/67db/+u7Z//npzP/uxlz/7cRN/+7FTP/uxEn/7sRF/+7EQ//sw0H/7MNA/+zCQP/sw0D/7cJA/+3C Qv/twkT/7cJF/+zAR/7rv0j9675J/eq8S/3qvEv96rxM/eq9T/3rvVH9675T/eu+Vf3qvVT96rxT/em7 Uv7pulL06rtTm+u9VA3rvVQA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A7sZbA+7FWmvtw1n/7MNY/+3EWv/txVr/7cVZ/+3E Vv/tw1P/7cJR/+zCT//swkz/7cJL/+3CSv/tw0j/7cNH/+3DRv/uw0P/7cNC/+3DQf/tw0D/7cNA/+3D QP/tw0H/7cRD/+7FRv/uxkn/78dN/+/JUf/vyVX/+OW6//rv3f/67df/+u3X//rt1//67df/+u3X//rt 1//67df/+u3X//rt1//67df/+u3X//rt1//67df/+u3X//rt1//67df/+u3X//rt1//67df/+u3X//rt 1//67df/+u3X//rt1//67df/+u3X//rt1//67df/+u3X//rt1//67df/+u3X//rt1//67df/+u3X//rt 1//67df/+u3X//rt1//67df/+u3X//rt1//67df/+u3X//rt1//67df/++/d//HRf//tw0v/7sZO/+7F Sv/uxUf/7sRE/+3EQv/tw0H/7cNA/+3DQP/twkD/7cJA/+3DQv/tw0T/7cJG/+3CR//swkj/7MFJ/+zB S//swUz/7MJP/+3CUf/tw1T/7cRW/+3EWP/sw1j/7MJX/+u/Vv/rvVT/675Vpeu/VgP///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wDvyV5D78hd1O7HXP/uyFz/7shd/+7IW//ux1f/7sdV/+7GUv/uxU//7cRN/+3ES//txEn/7cNI/+3D R//txEX/7cND/+3DQv/tw0H/7cNA/+3DP//twz//7cNA/+3DQv/txEX/7sVH/+7GS//uyE//78lR//HP af/67NT/+u/b//ru2f/67tn/+u7Z//ru2f/67tn/+u7Z//ru2f/67tn/+u7Z//ru2f/67tn/+u7Z//ru 2f/67tn/+u7Z//ru2f/67tn/+u7Z//ru2f/67tn/+u7Z//ru2f/67tn/+u7Z//ru2f/67tn/+u7Z//ru 2f/67tn/+u7Z//ru2f/67tn/+u7Z//ru2f/67tn/+u7Z//ru2f/67tn/+u7Z//ru2f/67tn/+u7Z//ru 2f/67tn/+u7Z//ru2f/78OH/9d2k/+3DTf/uxlD/7sZM/+7FSf/uxUb/7cRD/+3DQf/tw0D/7cM//+3D P//twkD/7cNB/+3DQ//tw0T/7cNG/+3DR//tw0j/7cNJ/+3ES//txE3/7sVP/+7GUf/uxlT/7sdX/+7G Wf/uxlv/7MRb/+zCWP/rwFf768FXRf///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////APDMYWLwy2Du8Mtf//DLX//vylz/78lZ/+/J Vv/vyFP/7sdQ/+7GTf/uxUv/7sVJ/+7ER//uxEb/7sRE/+7EQ//tw0L/7cNB/+7DP//uwz//7sM//+7D P//uw0H/7sRD/+7FRv/vxkn/78dN//DJUv/wyFH/89aC//rw3//67tr/+u7a//ru2v/67tr/+u7a//ru 2v/67tr/+u7a//ru2v/67tr/+u7a//ru2v/67tr/+u7a//ru2v/67tr/+u7a//ru2v/67tr/+u7a//ru 2v/67tr/+u7a//ru2v/67tr/+u7a//ru2v/67tr/+u7a//ru2v/67tr/+u7a//ru2v/67tr/+u7a//ru 2v/67tr/+u7a//ru2v/67tr/+u7a//ru2v/67tr/+u7a//ru2v/67tr/+u7a//rw3//35sH/7sZV/+/H Uv/vx07/78ZK/+/FSP/uxEX/7sRC/+7DQP/uwz//7sM//+7DP//uw0D/7sNB/+3DQv/uxET/7cRF/+7E Rv/uxEf/7sRJ/+7FS//uxk3/7sdQ/+/HUv/vyFX/78hY/+/IWv/uyF3/7sZc/+zDWv/swlll////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A8c5jZPHOY+/wzWL/8Mxg//DLW//wylf/8MlU/+/IUf/vx07/78ZL/+/FSf/uxUf/7sRF/+7E RP/uw0P/7sNC/+7DQf/uw0D/7sM//+7DP//uwz//7sNA/+7DQv/uxET/7sVH/+/GSv/vyE//8MpU/+/J Uf/13Zr/+/Hj//rv2//679v/+u/b//rv2//679v/+u/b//rv2//679v/+u/b//rv2//679v/+u/b//rv 2//679v/+u/b//rv2//679v/+u/b//rv2//679v/+u/b//rv2//679v/+u/b//rv2//679v/+u/b//rv 2//679v/+u/b//rv2//679v/+u/b//rv2//679v/+u/b//rv2//679v/+u/b//rv2//679v/+u/b//rv 2//679v/+u/b//rv2//679v/+vDd//ns0//vymT/78dS/+/HUP/vxk3/78VJ/+7ERf/uxEP/7sNB/+7D QP/uwz//7sM//+7DQP/uw0H/7sNB/+7DQv/uxEP/7sRE/+7ERv/uxUf/78VI/+/GS//vx03/78hQ/+/I U//vyVb/78lZ/+/JXP/vyF//7sZd/+3EW2f///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wDwzWNj8c9k7/HPY//xzV//8Mta//DK Vv/vyVL/78hP/+/HTP/vxkn/7sVH/+7FRf/uxET/7sRD/+7EQv/uxEL/7sNA/+7DP//uwz//7sM//+7D QP/uw0H/7sRD/+7FRv/uxkn/78dN/+/JUf/wyVX/78lU//birv/78uT/+vDd//rw3f/68N3/+vDd//rw 3f/68N3/+vDd//rw3f/68N3/+vDd//rw3f/68N3/+vDd//rw3f/68N3/+vDd//rw3f/68N3/+vDd//rw 3f/68N3/+vDd//rw3f/68N3/+vDd//rw3f/68N3/+vDd//rw3f/68N3/+vDd//rw3f/68N3/+vDd//rw 3f/68N3/+vDd//rw3f/68N3/+vDd//rw3f/68N3/+vDd//rw3f/68N3/+vDd//rw3f/68N7/+vDe//HQ dP/ux1L/78hS/+/HTv/vxkr/7sZH/+7ERP/uxEL/7sNB/+7DP//uwz//7sM//+7DP//uxEH/7sRC/+7E Qv/uxEP/7sRE/+7ERf/uxUb/78ZJ/+/GS//vx07/78hR/+/JVP/vylj/8Mpc/+/KX//vyF//7sZdZ/// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////APDMY2PxzWTv8c5i//HNXv/xzFn/8MpV//DJUf/wyE7/78dL/+/GSP/vxkb/78VE/+/F Qv/vxEL/78RB/+7EQP/uxD//7sM//+7DP//uxD//78RA/+/EQv/vxUP/78ZH/+/HSv/wyE7/8MlS//DK Vv/wylf/+Oa9//vy5P/78N7/+/De//vw3v/78N7/+/De//vw3v/78N7/+/De//vw3v/78N7/+/De//vw 3v/78N7/+/De//vw3v/78N7/+/De//vw3v/78N7/+/De//vw3v/78N7/+/De//vw3v/78N7/+/De//vw 3v/78N7/+/De//vw3v/78N7/+/De//vw3v/78N7/+/De//vw3v/78N7/+/De//vw3v/78N7/+/De//vw 3v/78N7/+/De//vw3v/78N7/+/De//vw3v/78uP/89SC/+/HUv/wyVT/8MhP//DHTP/vx0j/78VF/+/F Q//vxEH/7sQ//+7DP//uwz//7sQ//+7EQP/vxEH/78RC/+/EQv/vxUP/78VE/+/FRv/vxkj/78dK//DI Tf/wyFD/8MlT//DKV//wy1v/8Mtg//DKYf/vyGBn////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A8MtjY/HMZO/xzWL/8cxd//HL Wf/wylT/8MlR//DITf/vx0r/78ZI/+/FRv/vxUT/78RD/+/EQv/uxEH/7sRA/+7DQP/uw0D/7sNA/+7D QP/uxEH/78RD/+/FRf/vxkj/78dL//DIT//wyVP/8MpX//DLXP/56cX/+/Lk//vx3//78d//+/Hf//vx 3//78d//+/Hf//vx3//78d//+/Hf//vx3//78d//+/Hf//vx3//78d//+/Hf//vx3//78d//+/Hf//vx 3//78d//+/Hf//vx3//78d//+/Hf//vx3//78d//+/Hf//vx3//78d//+/Hf//vx3//78d//+/Hf//vx 3//78d//+/Hf//vx3//78d//+/Hf//vx3//78d//+/Hf//vx3//78d//+/Hf//vx3//78d//+/Hf//zz 5f/02I3/78dT//DJVf/wyFH/8MhN/+/HSf/vxUb/78VD/+/EQf/uxED/7sNA/+7DQP/uw0D/7sRA/+7E QP/vxEH/78RC/+/EQ//vxUP/78VF/+/GR//vx0r/8MhM//DIUP/wylT/8cpX//HLXP/xzGD/8Mtj/+/K Ymf///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wDwy2Rj8cxk7/HNYv/xzV3/8cxZ//DLVv/wyVH/8MhO/+/HS//vxkj/78ZG/+/F Rf/vxUP/7sVC/+7EQv/uxEL/7sRB/+7EQP/uxEH/7sRB/+7FQv/vxUT/78ZG/+/HSf/vyE3/8MlR//DK VP/wy1j/8Mtf//nqyv/78ub/+/Hh//vx4f/78eH/+/Hh//vx4f/78eH/+/Hh//vx4f/78eH/+/Hh//vx 4f/78eH/+/Hh//vx4f/78eH/+/Hh//vx4f/78eH/+/Hh//vx4f/78eH/+/Hh//vx4f/78eH/+/Hh//vx 4f/78eH/+/Hh//vx4f/78eH/+/Hh//vx4f/78eH/+/Hh//vx4f/78eH/+/Hh//vx4f/78eH/+/Hh//vx 4f/78eH/+/Hh//vx4f/78eH/+/Hh//vx4f/78eH//PPo//Tak//vyFT/8MpX//DJU//wyU//78dL/+/H SP/vxUX/78VD/+7EQv/uxEH/7sRA/+7EQf/uxEH/7sRC/+7FQv/uxUL/78VD/+/FRP/vxkb/78dI/+/H Sv/vyE3/8MlQ//DKVf/wy1j/8cxc//DNYf/xzWT/78tjZ////wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////APDLZGPxzGXv8c1j//HN X//xzFr/8ctX//HJU//wyE//8MhN//DGSv/wxkj/8MZG//DFRf/vxUT/78VD/+/EQ//vxEP/78RC/+/E Q//vxEP/78VE//DFRv/wxkj/8MdL//DITv/xyVL/8cpW//HLWf/xy1//+evK//vz5//78uL/+/Li//vy 4v/78uL/+/Li//vy4v/78uL/+/Li//vy4v/78uL/+/Li//vy4v/78uL/+/Li//vy4v/78uL/+/Li//vy 4v/78uL/+/Li//vy4v/78uL/+/Li//vy4v/78uL/+/Li//vy4v/78uL/+/Li//vy4v/78uL/+/Li//vy 4v/78uL/+/Li//vy4v/78uL/+/Li//vy4v/78uL/+/Li//vy4v/78uL/+/Li//vy4v/78uL/+/Li//vy 4v/89On/9duU//DJVf/xy1j/8cpU//HJUP/wx03/8MdK//DGR//wxUX/78RD/+/EQ//vxEL/78RD/+/E Q//vxUP/78VD/+/FRP/wxUX/8MZG//DGSP/wxkr/8MdM//DIT//xyVL/8cpV//HMWf/yzV7/8c1i//LO Zv/xzGVn////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A8MtkY/HMZu/xzmX/8c1h//LMXP/xzFj/8ctV//HJUv/wyU//8MhM//DH Sv/wx0j/8MZH//DGRv/wxkX/78ZF/+/FRP/vxUT/78VE/+/FRP/wxkX/8MZH//DHSf/wyEz/8MlP//HK U//xy1f/8cta//DKXf/56sf/+/Xo//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz 4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz 4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz 4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//v16f/12o//8MpX//HLWv/xy1X/8clR//DI Tv/wx0v/8MdI//DGRv/vxkX/78VE/+/FRP/vxUT/78ZF/+/GRf/wxkb/8MZG//DGR//wx0j/8MdK//DI S//wyU7/8MlR//HKVP/xzFj/8c1c//LOYP/yz2T/8s9o//HNZmf///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDvymRj8Mtl7/HN Zv/xzWL/8c1f//HMW//xy1f/8ctU//DKUv/wyU//8MhN//DIS//wyEr/8MhJ//DHSP/wx0j/8MdH/+/H Rv/vxkb/78dG//DHR//wx0j/8MhK//DJTf/wylD/8cpT//HLV//wy1v/8Mpa//jnv//89ev/+/Pl//vz 5f/78+X/+/Pl//vz5f/78+X/+/Pl//vz5f/78+X/+/Pl//vz5f/78+X/+/Pl//vz5f/78+X/+/Pl//vz 5f/78+X/+/Pl//vz5f/78+X/+/Pl//vz5f/78+X/+/Pl//vz5f/78+X/+/Pl//vz5f/78+X/+/Pl//vz 5f/78+X/+/Pl//vz5f/78+X/+/Pl//vz5f/78+X/+/Pl//vz5f/78+X/+/Pl//vz5f/78+X/+/Pl//vz 5f/78+X/+/Tq//TYh//xy1n/8cxa//HLVv/xylL/8MlP//DITP/wyEr/8MdI/+/HRv/vxkb/78ZG/+/H Rv/wx0f/8MdI//DHSf/wyEn/8MhK//DIS//wyE3/8MlO//DKUf/xylT/8cxX//HNWv/yzl7/8s9j//LR aP/y0Gr/8s9oZ////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AO/IZGPwymXv8c1n//HNZP/yzWH/8s1e//HMW//yy1j/8spV//HJ Uv/xyVD/8clP//HITf/xyEz/8chL//HIS//xyEr/8cdJ//DHSf/wx0n/8cdJ//HHS//xyE3/8clP//HK Uv/xylX/8stY//HLXP/wyVn/9+Ox//327v/89Ob//PTm//z05v/89Ob//PTm//z05v/89Ob//PTm//z0 5v/89Ob//PTm//z05v/89Ob//PTm//z05v/89Ob//PTm//z05v/89Ob//PTm//z05v/89Ob//PTm//z0 5v/89Ob//PTm//z05v/89Ob//PTm//z05v/89Ob//PTm//z05v/89Ob//PTm//z05v/89Ob//PTm//z0 5v/89Ob//PTm//z05v/89Ob//PTm//z05v/89Ob//PTm//z05//89OX/9NV7//LMW//yzVv/8sxX//HK VP/xyVH/8chO//HITP/xx0r/8cdJ//DHSf/wx0n/8cdJ//HIS//xyEv/8chM//HITf/xyE3/8clP//HJ UP/xyVL/8cpU//LLV//yzFr/8s1d//POYf/zz2b/89Fr//PSbP/z0Wtn////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A78hjZO/J ZO/xy2f/8c1n//LNZP/yzWL/8c1f//HMXP/yzFn/8ctX//HKVf/xylP/8clS//HJUf/xyU//8chO//HI Tf/xyE3/8chM//HITP/xyEz/8clN//HJTv/xylD/8ctT//HLVv/yzFn/8cxd//DJWP/23Zz//fbv//z0 5//89Of//PTn//z05//89Of//PTn//z05//89Of//PTn//z05//89Of//PTn//z05//89Of//PTn//z0 5//89Of//PTn//z05//89Of//PTn//z05//89Of//PTn//z05//89Of//PTn//z05//89Of//PTn//z0 5//89Of//PTn//z05//89Of//PTn//z05//89Of//PTn//z05//89Of//PTn//z05//89Of//PTn//z0 5//89Of//PXq//vx3P/00m7/8s5f//LNXf/yzFj/8ctU//HKUf/xyU//8clN//HITP/xyEz/8chM//HI TP/xyU3/8clO//HJT//xyVD/8clR//HKUv/xylP/8cpV//HLV//yy1n/8s1c//LNX//yzmL/8s9l//LQ af/z0Wz/89Fs//PSbWf///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wDvxmJg78Zi7e/JZP/xzGf/8c1n//HNZP/yzWL/8c1g//HM Xv/xzFv/8ctZ//HKV//xylX/8MpU//DKU//wyVL/8clR//HJT//xyU//8clO//HJTv/xyk//8clQ//HK Uv/xylX/8ctW//LMWv/xzF3/8Mpa//PVhP/89u3//PXq//z16f/89en//PXp//z16f/89en//PXp//z1 6f/89en//PXp//z16f/89en//PXp//z16f/89en//PXp//z16f/89en//PXp//z16f/89en//PXp//z1 6f/89en//PXp//z16f/89en//PXp//z16f/89en//PXp//z16f/89en//PXp//z16f/89en//PXp//z1 6f/89en//PXp//z16f/89en//PXp//z16f/89en//PXp//z16f/89+//+u3K//PQZP/yz2H/8s5d//LM Wf/xy1b/8cpT//HKUf/xyU//8cpO//HJTv/xyU//8cpQ//HJUP/xyVH/8cpT//DKVP/xylX/8cpW//HK V//xy1n/8ctb//HMXv/xzWD/8s1i//LOZf/yz2j/8s9r//LPav/yz2r/89BsY////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AO/G YjDvxWHA78Zi/+/IZP/xy2f/8cxn//HMZf/xzGP/8sxh//HLXv/xylz/8cpa//HKWf/xylj/8cpW//HK Vv/xylT/8cpT//LKUv/yylH/8spR//LKUf/yy1L/8stT//LLVf/yzFj/8sxa//LNXf/yy13/8s5s//vy 3//89+3//Pbq//z26v/89ur//Pbq//z26v/89ur//Pbq//z26v/89ur//Pbq//z26v/89ur//Pbq//z2 6v/89ur//Pbq//z26v/89ur//Pbq//z26v/89ur//Pbq//z26v/89ur//Pbq//z26v/89ur//Pbq//z2 6v/89ur//Pbq//z26v/89ur//Pbq//z26v/89ur//Pbq//z26v/89ur//Pbq//z26v/89ur//Pbq//z2 6v/89ur//Pbq//z48v/45a7/885f//PPYv/zzl3/8sxa//LMVv/yy1T/8stT//LKUf/yylH/8spR//LL Uv/yylP/8spU//HKVv/xylf/8spX//LKWP/xylr/8cpa//HKXP/xy17/8sxg//LNY//yzWb/8s1o//LN af/yzWn/8cxo//LNae/yz2o0////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A78VhAO/EYUPuw2D57sRg/+/GYv/wx2T/8Mll//DJ ZP/wyWL/8Mhg//DIXf/wx1z/8Mha//DIWv/xyVn/8cpY//HKWP/xy1b/8stV//LLVP/yy1T/8stT//LL U//yzFX/8sxW//LNWf/zzVv/8s1e//LNYP/xyV3/+OnB//348v/89uv//Pbr//z26//89uv//Pbr//z2 6//89uv//Pbr//z26//89uv//Pbr//z26//89uv//Pbr//z26//89uv//Pbr//z26//89uv//Pbr//z2 6//89uv//Pbr//z26//89uv//Pbr//z26//89uv//Pbr//z26//89uv//Pbr//z26//89uv//Pbr//z2 6//89uv//Pbr//z26//89uv//Pbr//z26//89uv//Pbr//z26//89uz//Pfv//bbi//zz2H/89Bi//PO Xf/yzVr/8s1X//LMVf/yzFT/8stT//LLU//yzFT/8sxV//LLVv/yzFj/8stZ//LKWv/xyVr/8Mlb//DI W//wyFz/8Mhe//DIYP/xyWL/8cpk//DKZv/wymf/8Mll//DJZf/wyWX/8ctoevLMaQD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wDvxGEA78RhAO7DYDztwV607cFe2e3CXtvuwmDa7sNg2u7EYNruw1/a7sNd2u7DW9ruw1ra78Ra2u/G Wtrwx1rY8cla7fHLWv/xy1n/8sxY//LMV//yzFb/8sxW//LMV//yzFj/8s1a//LNXP/zzV7/8s1h//HJ W//125b//vn0//337f/99+3//fft//337f/99+3//fft//337f/99+3//fft//337f/99+3//fft//33 7f/99+3//fft//337f/99+3//fft//337f/99+3//fft//337f/99+3//fft//337f/99+3//fft//33 7f/99+3//fft//337f/99+3//fft//337f/99+3//fft//337f/99+3//fft//337f/99+3//fft//33 7f/99+3//fft//348f/78tv/89Jt//PQZP/z0GL/885e//LNW//yzVn/8sxX//LMV//yzFb/8sxX//LM WP/yzFn/8sxb//LMXP3xylzd8Mlc2e/HXNrvxVva78Rb2u7DXNruw13a7sRf2u/EYdrvxGLa78Rh2u7E YdruxGHb78Vixe/HZV7xy2cA8ctoAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AO/EYQDvxGEA7sJgAO3BXgDtwV0F7cFdB+3B XQftwV4H7cJfB+7CXwfuwl0H7cFbB+7BWQfuw1kH7sVaB/DHWgDwyVxm8spc//LMXP/yzFv/881a//PN Wf/zzVj/881Y//PNWf/zzlv/885c//POX//zzmH/8sxg//LObf/88+L//fjx//337v/99+7//ffu//33 7v/99+7//ffu//337v/99+7//ffu//337v/99+7//ffu//337v/99+7//ffu//337v/99+7//ffu//33 7v/99+7//ffu//337v/99+7//ffu//337v/99+7//ffu//337v/99+7//ffu//337v/99+7//ffu//33 7v/99+7//ffu//337v/99+7//ffu//337v/99+7//ffu//337v/99+7//vn2//jlr//zz2H/9NBl//TQ Yf/zz17/885c//PNWv/zzVj/881Y//PNWP/zzVr/881b//PNXP/zzV7/8sxg3fHKXxDwyVwE78dcB+7E Wwfuw1sH7cJcB+7CXQfuw18H7sNfB+7DXwfuw18H7sNfB+7EYAbvxWIB78dlAPHLZwDxy2gA////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A78RhAO/EYQDuwmAA7cFeAO3BXQDtwV0A7cFdAO3BXgDtwl8A7sJfAO7CXQDtwVsA7sFZAO7D WQDuxVoA8MdcAPHHXinxyV/68sxf//PNXv/zzl3/885b//POW//zzlr/885b//POW//zzl3/889f//PO Yf/zzmP/8clc//jjsP/++/j//fjv//347//9+O///fjv//347//9+O///fjv//347//9+O///fjv//34 7//9+O///fjv//347//9+O///fjv//347//9+O///fjv//347//9+O///fjv//347//9+O///fjv//34 7//9+O///fjv//347//9+O///fjv//347//9+O///fjv//347//9+O///fjv//347//9+O///fjv//34 7//9+O///fjv//358f/99+z/9dZ9//PQZP/00GX/9NBi//PPX//zz1z/881b//POWv/zzlr/885b//PP Xf/zz17/885g//POYv/yzWOi8sxjAPHJXQDvx1sA7sRbAO7DWwDtwlwA7sJdAO7DXwDuw18A7sNfAO7D XwDuw18A7sRgAO/FYgDvx2UA8ctnAPHLaAD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wDvxGEA78RhAO7CYADtwV4A7cFdAO3B XQDtwV0A7cFeAO3CXwDuwl8A7sJdAO3BWwDuwVkA7sNZAO/FXADwx2AA8MdgAfHIYMzyzGH/885h//PO X//zzl7/889d//POXP/zzlz/885d//PPXf/zz1//889h//POY//yy2D/8tB2//z26//9+fP//fjw//34 8P/9+PD//fjw//348P/9+PD//fjw//348P/9+PD//fjw//348P/9+PD//fjw//348P/9+PD//fjw//34 8P/9+PD//fjw//348P/9+PD//fjw//348P/9+PD//fjw//348P/9+PD//fjw//348P/9+PD//fjw//34 8P/9+PD//fjw//348P/9+PD//fjw//348P/9+PD//fjw//348P/9+PD//fv5//npvP/zz2P/89Fn//TQ ZP/z0GH/889f//PPXf/zzlz/885c//POXP/zz17/889g//TPYv/z0GT/889l//LNZl7yzWYA8sxkAO/H XADuxFsA7sNbAO3CXADuwl0A7sNfAO7DXwDuw18A7sNfAO7DXwDuxGAA78ViAO/HZQDxy2cA8ctoAP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AO/EYQDvxGEA7sJgAO3BXgDtwV0A7cFdAO3BXQDtwV4A7cJfAO7CXwDuwl0A7cFbAO3B WQDuw1oA8MdhAPDIYgDwyGIA8chifvLLY//zzmP/9M9i//PPYP/0z17/9M9e//TPXf/0z13/9M9e//TP X//0z2H/9M9j//POZf/xyV3/9+Kv//78+//9+fH//fnx//358f/9+fH//fnx//358f/9+fH//fnx//35 8f/9+fH//fnx//358f/9+fH//fnx//358f/9+fH//fnx//358f/9+fH//fnx//358f/9+fH//fnx//35 8f/9+fH//fnx//358f/9+fH//fnx//358f/9+fH//fnx//358f/9+fH//fnx//358f/9+fH//fnx//35 8f/9+fH//fnx//369P/89+z/9dZ8//TQZf/10Wb/9NFk//TQYf/0z1//9M9d//TPXf/0z13/9M9e//TQ YP/00GL/9NBl//TRZ//00Gnt889pGvPPaQD0z2oA8stjAO7EWgDuw1sA7cJcAO7CXQDuw18A7sNfAO7D XwDuw18A7sNfAO7EYADvxWIA78dlAPHLZwDxy2gA////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A78RhAO/EYQDuwmAA7cFeAO3B XQDtwV0A7cFdAO3BXgDtwl8A7sJfAO7CXQDtwVoA7sJZAO/GYADwx2QA8MdkAPDHZADwx2Qv8spk/PPN Zf/0z2T/9M9j//TPYf/0z1//9M9f//TPX//0z1//9M9g//TPYf/00GP/9M9l//LMYv/yzGz//PPh//37 +P/9+fP//fnz//358//9+fP//fnz//358//9+fP//fnz//358//9+fP//fnz//358//9+fP//fnz//35 8//9+fP//fnz//358//9+fP//fnz//358//9+fP//fnz//358//9+fP//fnz//358//9+fP//fnz//35 8//9+fP//fnz//358//9+fP//fnz//358//9+fP//fnz//358//9+fP//vz8//jjq//zzmP/9NFp//XR Zf/00GP/9NBh//TPX//0z17/9M9e//TPX//00GD/9NBi//TRZP/10Wf/9NFq//TRbKr00GwA9NBsAPTQ bAD00G0A8MdfAO7CWgDtwlwA7sJdAO7DXwDuw18A7sNfAO7DXwDuw18A7sRgAO/FYgDvx2UA8ctnAPHL aAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wDvxGEA78RhAO7CYADtwV4A7cFdAO3BXQDtwV0A7cFeAO3CXwDuwl8A7sJdAO3B WgDuw10A8chmAPHIZQDxyGUA8chlAPHIZQDxyWW78s1m//PPZv/00GT/9NBi//TQYf/00GD/9NBf//TQ X//00GD/9NBh//PQY//00GT/889m//HKXv/0147//vv4//779f/++vT//vr0//769P/++vT//vr0//76 9P/++vT//vr0//769P/++vT//vr0//769P/++vT//vr0//769P/++vT//vr0//769P/++vT//vr0//76 9P/++vT//vr0//769P/++vT//vr0//769P/++vT//vr0//769P/++vT//vr0//769P/++vT//vr0//76 9P/++vT//vr0//78+//78dX/89Fs//TQaP/00Wj/9NFl//TRYv/00GH/9NBf//TQX//00F//9NBg//TR Yv/00mT/9dJn//XSav/00m3/9NJvTfTSbwD00m8A9NJvAPTTcADzz2sA7sNbAO3CXADuwl0A7sNfAO7D XwDuw18A7sNfAO7DXwDuxGAA78ViAO/HZQDxy2cA8ctoAP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AO/EYQDvxGEA7sJgAO3B XgDtwV0A7cFdAO3BXQDtwV4A7cJfAO7CXwDuwlwA7cFaAPHJZQDxymcA8cpnAPHKZwDxymcA8cpnAPHK Z1nyzWf/889n//TQZv/00WT/9dBi//XQYP/10GD/9dBf//XQYP/10GD/9dBi//TQZP/00Gb/885m//HJ Xv/447H///7///769f/++vX//vr1//769f/++vX//vr1//769f/++vX//vr1//769f/++vX//vr1//76 9f/++vX//vr1//769f/++vX//vr1//769f/++vX//vr1//769f/++vX//vr1//769f/++vX//vr1//76 9f/++vX//vr1//769f/++vX//vr1//769f/++vX//vr1//769f/++/n//vjt//XWgP/0z2b/9dFp//XR Z//00WT/9dFi//XQYP/10F//9dBf//XQYP/10GH/9dFj//XRZv/102n/9tNs//TUcNP003IH9NNyAPTT cgD003IA9NNyAPXUcwDwyWQA7cFaAO7CXQDuw18A7sNfAO7DXwDuw18A7sNfAO7EYADvxWIA78dlAPHL ZwDxy2gA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A78RhAO/EYQDuwmAA7cFeAO3BXQDtwV0A7cFdAO3BXgDtwl8A7sJfAO3B XADwxWEA88xqAPPLaQDzy2kA88tpAPPLaQDzy2kA88tpCfPNadb0z2n/9dFo//TRZv/10WP/9dFh//XR Yf/10GD/9dBg//XRYP/10GL/9dFk//TRZv/10Gf/881l//LKZP/668n///7///779v/++/b//vv2//77 9v/++/b//vv2//779v/++/b//vv2//779v/++/b//vv2//779v/++/b//vv2//779v/++/b//vv2//77 9v/++/b//vv2//779v/++/b//vv2//779v/++/b//vv2//779v/++/b//vv2//779v/++/b//vv2//77 9v/++/b//vz5//78+P/33JT/9M5k//XSa//10mj/9dFl//XRY//10WH/9dBg//XQYP/10GD/9dFh//XR Yv/10mX/9dNo//bUbP/21XD/9tZzbvbWdAD21nQA9tZ0APbWdAD21nQA9tZ1APXUcgDuw14A7sJcAO7D XwDuw18A7sNfAO7DXwDuw18A7sRgAO/FYgDvx2UA8ctnAPHLaAD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDvxGEA78RhAO7C YADtwV4A7cFdAO3BXQDtwV0A7cFeAO3CXwDuwl4A7sNeAPPMagDzzWsA881rAPPNawDzzWsA881rAPPN awDzzWsA885ravTQav/10Wn/9dJn//XSZf/10mP/9dFi//XQYf/10GD/9dFh//XRYf/10WP/9NFl//TR Z//00Gj/88xk//LLav/779T///////779//++/f//vv3//779//++/f//vv3//779//++/f//vv3//77 9//++/f//vv3//779//++/f//vv3//779//++/f//vv3//779//++/f//vv3//779//++/f//vv3//77 9//++/f//vv3//779//++/f//vv3//779//++/f//vv3//78+v/+/fz/9+Ch//POZP/10mv/9dJq//XS Z//10mT/9dFj//XRYf/10WD/9dFg//XQYf/10WL/9dJk//XTZv/102n/9tRs//bVcd721XQQ9tV0APbV dAD21XQA9tV0APbVdAD21XQA9td1APHLaADtwVsA7sNfAO7DXwDuw18A7sNfAO7DXwDuxGAA78ViAO/H ZQDxy2cA8ctoAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AO/EYQDvxGEA7sJgAO3BXgDtwV0A7cFdAO3BXQDtwV4A7cJfAO3B XgDwyGQA9NFuAPPQbQDz0G0A89BtAPPQbQDz0G0A89BtAPPQbQDz0G0K9dFt1PXSa//10mj/9tJm//bS Y//20WL/9tFh//bRYP/20WH/9tFh//bRYv/20WX/9dFn//XRaP/00Gn/88xk//PMbf/779T///////78 +P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78 +P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78+P/+/Pj//vz4//78 +P/+/fz//v37//fgo//zzWX/9dFs//XSa//10mn/9tJm//bSZP/20WP/9tFh//bRYP/20WD/9tFh//bR Yv/20mT/9tNn//bTav/2023/9dRwbfXUcQD11HEA9dRxAPXUcQD11HEA9dRxAPXUcQD11HEA9dNvAO7E XwDuw14A7sNfAO7DXwDuw18A7sNfAO7EYADvxWIA78dlAPHLZwDxy2gA////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A78RhAO/E YQDuwmAA7cFeAO3BXQDtwV0A7cFdAO3BXgDtwl4A7sJeAPTQawD1028A9dJuAPXTbgD1028A9dNvAPXT bwD1028A9dNvAPXTbwD2029X9tNt//bTav/202f/9tNl//bSY//20mH/9tFh//bRYf/20WH/9tJi//bR Y//20mb/9dJo//XRaf/10Gr/88xl//LLaf/66sX///////79/P/+/Pn//vz5//78+f/+/Pn//vz5//78 +f/+/Pn//vz5//78+f/+/Pn//vz5//78+f/+/Pn//vz5//78+f/+/Pn//vz5//78+f/+/Pn//vz5//78 +f/+/Pn//vz5//78+f/+/Pn//vz5//78+f/+/Pn//v7///768v/33Jf/881l//bRbP/202z/9dNq//bS aP/20mX/9tJj//bRYv/20WH/9dFh//XRYf/20WH/9tJj//bTZf/202f/9tNq//bTbcf21G8G9tRvAPbU bwD21G8A9tRvAPbUbwD21G8A9tRvAPbTbgD21G8A8cljAO3BXQDuw18A7sNfAO7DXwDuw18A7sRgAO/F YgDvx2UA8ctnAPHLaAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wDvxGEA78RhAO7CYADtwV4A7cFdAO3BXQDtwV0A7MBcAOzA XADxymgA99d3APfWdgD31nYA99V0APbUcwD21HIA9tRyAPbUcQD21HEA9tRxAPbVcQD21W/B9tRr//bT aP/20mb/9tJj//bRYv/10WH/9dFh//XRYf/20WL/9tJj//bSZf/20mf/9dJp//XSav/10Wv/881n//LJ Y//34Kn//vz4///////+/fr//v36//79+v/+/fr//v36//79+v/+/fr//v36//79+v/+/fr//v36//79 +v/+/fr//v36//79+v/+/fr//v36//79+v/+/fr//v36//79+v/+/fr//v36//79+v/+/fr//v78//// ///8893/9dWD//PNZf/10m7/9dNt//XTa//202n/9tNm//bSZf/20mP/9dFh//XRYP/10WD/9dFh//bR Yv/20mT/9tJl//bTaP/102r/9dJtm/XSbQD10GwA9c9sAPTPbAD1z20A9c9uAPXPbgD10G8A9tJxAPbS cgD10HEA8MdlAO7CXgDuwl4A7sNfAO7DXwDuxGAA78ViAO/HZQDxy2cA8ctoAP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AO/E YQDvxGEA7sJgAO3BXgDtwV0A7MBbAOy/WwDvxWQA9dN3APrdhAD63YYA+t2GAPrchQD3138A9tR7APbT eQD203cA9dJ1APXTdAD31XUA99Z0TPbWcPL21Wz/9tRp//bTZv/20mT/9dJi//XSYf/10mH/9dJh//XS Yv/20mP/9tNk//bSZv/202j/9dNq//XSa//10Wz/9M9q//LJYP/004P/+/DW///////+/////v37//79 +//+/fv//v37//79+//+/fv//v37//79+//+/fv//v37//79+//+/fv//v37//79+//+/fv//v37//79 +//+/fv//v37//79+//+/fv//v79///////++/X/+OWy//TPb//0z2j/9tNu//XTbf/11Gz/9tNq//bT Z//202b/9tJk//bSYv/10mH/9dFh//XSYf/10mH/9dJi//bTZP/202b/9tNo//XTa//10mz/9NFsg/TO bADzzGsA8stsAPPLbgDzy28A88xvAPTOcgD20XYA9tJ5APbSeQD203kA9M5yAPDHZgDuwl4A7sJeAO7E YQDvxWIA78dlAPHLZwDxy2gA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A78RhAO/EYQDuwl8A7MBcAOy/WwDvxWMA9dN2APrd hQD734gA+t2GAPrdhQD63YUA+tyEAPfXfwD21HsA9tN5APbTdwD10nUA9dN0APfVdU/31nP399Zv//fV bP/31Gn/99Nn//bSZf/20mP/9tJi//bRYf/20WH/9tJi//bSY//202T/99Nm//fTZ//302n/9tNr//bT bP/20m3/9dBs//PLZP/yymb/99yf//315v/////////////+/f///fz///38///9/P///fz///38///9 /P///fz///38///9/P///fz///38///9/P///fz///38///9/P///fz////+///////+/fr/+uzJ//XV gf/0zGX/9dFt//bTb//2027/99Rt//fUa//302n/99Rn//bTZv/20mT/9tJi//bSYf/20WH/9tFh//bS Yv/20mP/9tNl//fTZv/302n/9tNr//bSbP/10Wz/9M5sg/PMawDyy2wA88tuAPPLbwDzzG8A9M5yAPbR dgD20ngA9tJ4APbSeAD203kA9tN5APTOcgDwx2YA7sNgAO/EYQDvx2QA8ctoAPHLaAD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wDvw2AA78NgAO/EYgDwx2YA9dJ2APrdhQD734gA+t2GAPrdhQD63YUA+t2FAPrdhQD63IQA99d/APbU ewD203kA9tN3APXSdQD103VP9tV09/bVcv/31W//99Vs//fUaf/31Gf/9tNl//bTZP/20mL/9tJi//bS Yv/20mL/9tJj//bTZP/202X/99Rn//fUaf/31Gr/9tRr//bUbf/2027/9dJu//XPa//zy2L/88xs//fc nf/88Nj///36/////////////////////v///v3///78///+/P///vz///78///+/P///v3///79//// ///////////////////++e//+um///XWhv/0zWf/9dBq//bTcP/21G//9tRv//fUbf/31Gz/99Rp//fU aP/31Gf/9tNl//bTY//20mL/9tJi//bSYv/20mL/9tJi//bTZP/202X/99Rm//fUaf/31Gv/9tNt//XS bf/0z23/88xrg/LLbADzy24A88tvAPPMbwD0znIA9tF2APbSeAD20ngA9tJ4APbSeAD20ngA9tN5APbT eQD0znIA8cloAO/IZQDxy2cA8ctnAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////APfXfAD313wA+duBAPrdhQD734gA+t2GAPrd hQD63YUA+t2FAPrdhQD63YUA+t2FAPrchAD3138A9tR7APbTeQD203cA9dJ1T/bUdff21XP/9tVx//fV b//31Wz/99Rp//bTZ//202b/9tNk//bSY//20mL/9tJi//bSY//20mP/9tNk//bTZv/21Gf/99Ro//fU av/31Gv/9tRs//bUbf/21G7/9tNu//XSbv/00Gz/88pk//LKZ//004L/+OGr//vv0v/9+O7///37//// /////////////////////////////////////v7//vv2//314//66sP/99uZ//TQdf/zzGX/9M9q//bT cP/21HD/9tRw//bVb//31W7/99Vs//fUav/31Gn/9tRo//bTZv/202X/9tNk//bSY//20mL/9tJi//bS Yv/20mP/9tNk//bTZv/21Gf/99Ro//fUa//21G3/9tNu//XRbv/0zm3/8sxsg/PLbgDzy28A88xvAPTO cgD20XYA9tJ4APbSeAD20ngA9tJ4APbSeAD20ngA9tJ4APbTeQD20nkA9tF3APXQdAD10HQA////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A+96HAPvehwD63oYA+t2FAPrdhQD63YUA+t2FAPrdhQD63YUA+t2FAPrdhQD63YUA+tyEAPfX fwD21HsA9tN5APbTeE/21Hb399V1//fWdP/31nL/+NZv//jWbP/31Wr/99Rn//fUZv/302X/99Nk//fT Y//302P/99Nj//fTZP/302X/99Rm//fUZ//31Gj/99Vp//jVa//41Wz/99Vt//fVbv/31W//99Rv//bU cP/20m//9dFu//TOaf/zy2P/88tm//TOcv/10oH/9tmT//jfpP/44a3/+eSz//njsf/44ar/99ye//bW i//10nv/9M1t//TMZv/0zmj/9dFu//bTcf/31HH/99Vx//fVcf/31nD/+NVv//jVbf/41Wv/+NVr//fV af/31Gj/99Rn//fUZv/302T/99Nk//fTY//302P/99Nj//fTZP/302X/99Rm//fUZ//31Gn/+NVr//fV bv/31G//9tRx//bScP/0zm//88xug/PLbwDzzG8A9M5yAPbRdgD20ngA9tJ4APbSeAD20ngA9tJ4APbS eAD20ngA9tJ4APbSeAD20ngA9tJ5APbSeQD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD63YUA+t2FAPrdhQD63YUA+t2FAPrd hQD63YUA+t2FAPrdhQD63YUA+t2FAPrdhQD63IQA99d/APbUewD203lP9tR59/fWeP/31nb/99Z0//jW cf/41m7/+NVs//fUav/31Gj/99Rn//fTZf/302X/99Nl//fTZf/302X/99Nl//fTZv/31Gf/99Ro//fU af/31Wr/+NVr//jVbP/41W3/+NVu//jVb//31XD/99Vw//fVcf/31HH/9tRx//bTcP/20m//9dBt//XO av/0zWf/9Mxl//TLZP/0y2T/9Mtk//TMZf/0zWf/9c5p//XQbP/20nD/9tNx//bUcv/31XL/99Vy//fV cv/31XH/+NZw//jWcP/41m7/+NZt//jVbf/41Wv/99Rq//fUaP/31Gj/99Rn//fTZ//302X/99Nl//fT Zf/302X/99Nl//fTZf/31Gf/99Ro//fVav/41Wv/+NVu//fVcP/31XL/99Rz//bSc//0z3L/88xwg/PM bwD0znIA9tF2APbSeAD20ngA9tJ4APbSeAD20ngA9tJ4APbSeAD20ngA9tJ4APbSeAD20ngA9tJ4AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////APrdhQD63YUA+t2FAPrdhQD63YUA+t2FAPrdhQD63YUA+t2FAPrdhQD63YUA+t2FAPrc hAD3138A9tV7T/bWe/f313v/+Nd6//fXd//413T/+Ndx//jWbv/41m3/99Vq//fVaf/31Gj/99Rm//fU Zv/31Gb/99Rm//fUZ//31Gf/99Vo//fVaf/31Wn/99Vr//fVa//41mz/+NZt//jWbv/41m7/+NZv//jW cP/41nH/99Zx//fWcf/31nH/99Vx//bVcf/21XL/9tRx//bUcf/203H/9tNx//bTcf/203H/9tRx//bU cv/21HL/9tVy//fVcv/31XL/99Zy//fWcv/31nL/+NZx//jWcP/41nD/+Ndv//jWbv/41m7/+NZt//jW bP/31Wv/99Vr//fVav/31Wn/99Vo//fUZ//31Gf/99Rn//fUZv/31Gb/99Rm//fUaP/31Wn/99Vq//jW bP/41m7/+NZx//fWc//31nX/99V2//XTdv/00HT/88xwg/TNcgD20XYA9tJ4APbSeAD20ngA9tJ4APbS eAD20ngA9tJ4APbSeAD20ngA9tJ4APbSeAD20ngA////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A+t2FAPrdhQD63YUA+t2FAPrd hQD63YUA+t2FAPrdhQD63YUA+t2FAPrdhQD63YUA+dyEAPjXf0/31373+NmA//jZfv/42Xv/+Nh3//nY df/513L/+dZv//jWbf/41Wv/+NVq//jUaf/41Gj/+NRo//jUaP/41Gj/+NVp//jVav/41Wr/+NVr//jV a//31mz/99Zt//jWbv/41m7/+NZv//nWcP/513D/+ddw//nXcP/51nH/+NZx//jWcf/41nH/+NZy//jW cv/31nL/99Zy//fWcv/31XL/99Vy//fWcv/31nL/99Zy//jWcv/41nL/+NZy//jWcv/41nL/+NZx//nW cf/513H/+ddw//nXcP/513D/+dZw//jWb//41m7/+NZt//fWbf/31mz/99Vs//jVa//41Wr/+NVq//jV af/41Wn/+NRo//jUaP/41Gj/+NVp//jVav/41Wv/+NZt//jWbv/513H/+Ndz//fXdv/413j/99Z5//bU ev/10Hb/9M5zg/bRdgD20ngA9tJ4APbSeAD20ngA9tJ4APbSeAD20ngA9tJ4APbSeAD20ngA9tJ4APbS eAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD63YUA+t2FAPrdhQD63YUA+t2FAPrdhQD63YUA+t2FAPrdhQD63YUA+t2FAPrd hQD63IQ/+duD9/nbg//524P/+dp///nafP/52nj/+dl1//nYcv/413D/+NZu//jWbP/41mv/+NZq//jV av/41Wr/+NZq//jWa//41mv/+NZs//jWbP/41m3/+NZt//jWbv/41m7/+NZv//nXcP/513D/+ddw//nX cf/513H/+dhx//nXcf/513H/+ddx//nXcf/513H/+ddx//nWcf/513H/+ddx//jWcf/41nH/+NZx//nX cf/513H/+ddx//nXcf/513H/+ddx//nXcf/513H/+dhx//nYcf/52HH/+ddx//nXcf/513H/+ddw//nX cP/41m//+NZv//jWbv/41m7/+NZt//jWbP/41mz/+NZr//jWa//41mv/+NVq//jVav/41mr/+NZr//jW bP/41m3/+Ndv//nYcf/52HT/+dh3//jZev/42Xz/+Nh9//fWfP/20nf/9dF2dPbSeAD20ngA9tJ4APbS eAD20ngA9tJ4APbSeAD20ngA9tJ4APbSeAD20ngA9tJ4AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////APnchgD53IYA+dyGAPnc hgD53IYA+dyGAPnchgD53IYA+dyGAPnchgD53IYA+dyGAPrdh8L63Yf/+t2H//ndhf/53ID/+dp9//na ef/52Hb/+dhz//jXcf/41m//+NZt//jWbf/41mz/+NZs//jWbP/41m3/+NZt//jWbf/41m7/+NZv//jW b//41nD/+NZw//nWcf/513H/+ddx//nXcv/513L/+dhy//nXcv/513L/+ddy//nXcv/513H/+ddx//nX cf/513D/+ddw//nXcP/513D/+ddw//nXcP/513D/+dZw//nWcP/513D/+ddw//nXcP/513H/+Ndx//nX cf/513L/+ddy//nXcv/52HL/+dhy//nYcv/513L/+ddy//nXcf/51nH/+NZx//jWcP/41nD/+NZv//jW bv/41m3/+NZt//jWbf/41m3/+NZs//jWbP/41m3/+NZt//jWbv/413D/+ddy//nYdf/52Xj/+dl7//ja ff/52oD/+NiB//bWff/21Hvu9tR8HfbUfAD21HwA9tR8APbUfAD21HwA9tR8APbUfAD21HwA9tR8APbU fAD21HwA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A+NqDAPjagwD42oMA+NqDAPjagwD42oMA+NqDAPjagwD42oMA+NqDAPja gwD42oMX+NqD8PnbhP/53Yf/+d2E//ncgf/5237/+dp6//nZd//52HT/+Nhy//jXcP/412//+Ndv//jX b//412//+Ndv//jXb//413D/+Ndx//nXcf/413H/+Ndy//jXcv/413P/+Ndz//jXc//413P/+Nhz//nY c//52HP/+dhz//nYc//52HP/+dhy//jYcv/42HH/+Nhx//jYcf/42HD/+Ndw//jXcP/412//+Ndv//jX b//412//+Ndw//jXcP/42HD/+Nhx//jYcf/42HH/+Nhy//nYcv/52HP/+dhz//nYc//52HT/+dh0//jY dP/413T/+Ndz//jXc//41nP/+NZy//jWcv/413L/+Ndx//jXcP/413D/+Ndv//jXb//412//+Ndu//jX bv/412//+Ndv//jYcf/52HP/+dl2//naef/523z/+dt///ncg//53IX/+NqD//fYgP/32YFI99mBAPfZ gQD32YEA99mBAPfZgQD32YEA99mBAPfZgQD32YEA99mBAPfZgQD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD314AA99eAAPfX gAD314AA99eAAPfXgAD314AA99eAAPfXgAD314AA99eAAPfXgA731n7k+NiA//nahP/524T/+duB//rb fv/62nv/+tl4//rZdv/52HT/+dhy//nYcf/52HH/+dhx//nYcv/52HL/+dhy//nYc//52HT/+dd0//nX dP/51nT/+NZ0//jVdP/41nT/+NZ0//nXdf/513X/+dd1//nYdf/52HX/+th0//nYc//52HP/+dhz//nY cf/513H/+ddx//nXcP/513D/+ddv//nXb//512//+ddv//nXb//512//+ddv//nXcP/513H/+ddx//nY cf/52HL/+dhz//nYdP/62HX/+th1//nYdf/52Hb/+dd2//nXdv/41nT/+NZ0//jVc//41XP/+NVz//jW c//513T/+ddz//nXc//513P/+dhy//nYcf/52HH/+dhx//nYcf/52HL/+dhz//rZdv/62Xj/+tp7//rb fv/63IL/+t2G//reif/63Yj/+tyG//rchjv63IYA+tyGAPrchgD63IYA+tyGAPrchgD63IYA+tyGAPrc hgD63IYA+tyGAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////APbUfAD21HwA9tR8APbUfAD21HwA9tR8APbUfAD21HwA9tR8APbU fAD21HwA9tR8APbUe5H21Xz/+NiB//nagv/524H/+tt///rbfP/62nr/+tp4//radv/52XX/+dl0//nZ dP/52XT/+dl1//rZdf/62Xb/+tl2//nYd//513b/+NZ1//fVdOz31HOq99Ny9vfTc//31HP/99V0//jW df/513b/+dh3//nYd//52Hb/+tl1//nYdP/52HP/+dly//nYcf/52HH/+dhw//nYb//512//+ddv//nX bv/5127/+ddu//nXb//52G//+dhw//nYcf/52HH/+dly//nZc//52HX/+tl2//rZdv/52Xf/+dh4//nY d//41nb/99V1//fUdP/303L/9tJy1vbScWP303LU99Rz//jWdP/513X/+dh2//nYdf/62XX/+dl0//nZ dP/52XT/+dl0//nZdf/62Xb/+tp4//rbev/6233/+tyA//rdg//63of/+t6J//reif/63onJ+t6JBPre iQD63okA+t6JAPreiQD63okA+t6JAPreiQD63okA+t6JAPreiQD63okA////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A9tF5APbR eQD20XkA9tF5APbReQD20XkA9tF5APbReQD20XkA9tF5APbReQD20XkA9tF4CvbReLz21Hz/+NiB//nZ gf/52oD/+dt+//rafP/62nr/+tp4//rad//52nf/+dp3//rad//62nj/+tl5//rZef/52Xn/+dh5//jW d//303X399NzTvbTcwD1z3Az9c5vtfXPb//10HH/9tJz//fUdf/31nb/+Nd3//nYd//52Hb/+dh2//nY df/52HP/+dhy//nYcv/52HD/+ddv//nXb//5127/+ddu//nXbv/5127/+ddv//nXb//52HD/+dhx//nY c//52XP/+dl1//rZdv/62Xf/+dh4//nYeP/413j/99V3//fTdf/20XP/9c9x6fXOb3j20HAL9tJxAPbQ cCX10HHc9tNz//jVdv/513j/+dh4//rZeP/62Xj/+tl3//nad//52nf/+tp4//raef/623r/+tt8//rb fv/63IH/+dyE//nchv/63Ib/+dqF5frbhiz63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrc hwD63IcA+tyHAPrchwD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbR eAD20XgA9tF4APbReAD20XgA9dB2DvXRd7321Xz/+NiA//jagP/524D/+dt+//rbff/623z/+tt7//rb ev/623r/+tt7//rbfP/623z/+dp8//nZfP/313r/99R39/bSdE/30nMA9tNzAPXPcAD0zG0A9MtsPfTL bLD0zW769c9x//bSdP/31Xb/99Z3//nYd//52Hf/+dl2//nZdf/52XP/+dlz//nZcv/52HH/+dhv//nY b//52G//+dhv//nYb//52G//+dhx//nZcv/52XP/+dl0//nadf/62nf/+tp4//nZef/52Hn/99Z5//fV d//20nX/9c9y4vTOb3v0zW8U9M1uAPbQcAD20nEA9tBwAPXObyX1z3Hc9tN1//fWeP/42Hr/+dp7//na e//62nv/+tt6//rbev/623v/+tt8//rbff/63H//+tyB//ncg//524T/+duF//jZguT42YIv+duGAPrc hwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////APbR eAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD10HYA9M91DvXQ d7331H3/+Nd///nZgP/62oD/+tuA//rbf//7237/+9t+//vbfv/7237/+tt///rbf//52X7/+Nh9//jV e/f203dP9tJ0APfScwD203MA9c9wAPTMbQD0y2wA88prAPPKbCv0ymyK9M1v4PbQcv/303X/+NZ3//nX d//62Xj/+tl3//rZdf/62XT/+tlz//rYcv/62HD/+thw//rYb//62G//+thw//rYcP/62HL/+tlz//rZ dP/62nb/+tp3//raef/62Xr/+dh6//jWef/31Hf59tF0vPXPclv0znEN9M1vAPTNbwD0zW4A9tBwAPbS cQD20HAA9M5vAPTNcCX1z3Pc99N3//jWe//52H3/+tp+//rbfv/6237/+9t+//vbfv/723//+tuA//rc gf/624P/+duD//nahP/414Hk99aAL/jYggD524YA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrc hwD63IcA+tyHAPrchwD63IcA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbR eAD20XgA9tF4APbReAD20XgA9tF4APXQdgD0z3UA9c50DvXQd7331Hz/+dh///nagf/624H/+tyB//rc gf/63IH/+tyB//rcgf/63IH/+dqB//nZgP/4133399R7T/bSdwD20nQA99JzAPbTcwD1z3AA9MxtAPTL bADzymsA88psAPTKbAD0y20K9M1vRvbQcpH303XT+NZ3+vrYef/62nn/+tp3//radf/62nT/+tlz//rZ cv/62XH/+tlx//rZcP/62XH/+tly//rZc//62nT/+tp2//rbeP/623r/+tp7//rafO342Hu399V5b/fS diX20HQA9c9yAPTOcQD0zW8A9M1vAPTNbgD20HAA9tJxAPbQcAD0zm8A9M1wAPXNciX20HTc99R5//jX ff/52n//+tuA//rbgP/63IH/+tyC//rcgv/63IP/+tyD//nbhP/52oT/+NeB5PfWfy/31oAA+NiCAPnb hgD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9dB2APTP dQD1znQA9c50DvXQd7331H3/+NeA//nagv/524P/+tyD//rcg//63IT/+tuE//nbg//52YL/+NeA9/fV fU/303sA9tJ3APbSdAD30nMA9tNzAPXPcAD0zG0A9MtsAPPKawDzymwA9MpsAPTLbQD0zW8A9tByAPfT dAL31Xgt+dh65PrZev/62nr/+tp4//radv/62nX/+tl0//rZcv/62XL/+tly//rZcv/62XP/+tp0//ra dv/62nj/+tt7//vbff/6237/+tp+PPjYewD31XgA99J2APbQdAD1z3IA9M5xAPTNbwD0zW8A9M1uAPbQ cAD20nEA9tBwAPTObwD0zXAA9c5yAPXOdCX10Hfc99R7//jXf//52oH/+duD//rcg//63IT/+tyE//rb hf/524T/+dmE//jXgeT31X4v99Z+APfWgAD42IIA+duGAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrc hwD63IcA+tyHAPrchwD63IcA+tyHAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////APbReAD20XgA9tF4APbReAD20XgA9tF4APbR eAD20XgA9tF4APbReAD20XgA9tF4APbReAD10HYA9M91APXOdAD1znQA9c50DvXQd7331Hz/+NeB//nZ g//52oT/+duF//nbhf/52oT/+NmD//fWgPf31X5P99V9APfTewD20ncA9tJ0APfScwD203MA9c9wAPTM bQD0y2wA88prAPPKbAD0ymwA9MttAPTNbwD1z3EA99R3APjXegb42HvY+tp8//rbfP/623r/+tt4//rb d//62nX/+tp0//rac//62nP/+tpz//radf/623b/+tt4//rbev/63H3/+92A//vdgv363IIu+duBAPjW egD20XUA9tB0APXPcgD0znEA9M1vAPTNbwD0zW4A9tBwAPbScQD20HAA9M5vAPTNcAD1znIA9c90APXP dSX10Hfc99R8//jXgf/52YP/+dqE//nbhf/524X/+dqF//jYg//31n/k99R9L/fVfgD31n4A99aAAPjY ggD524YA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APXQ dgD0z3UA9c50APXPdAD1znQA9M5zDvXPdb320nn/99V9//jXgP/414L/+NeC//jWgP/31H339tR9T/fV fgD31X0A99N7APbSdwD20nQA99JzAPbTcwD1z3AA9MxtAPTLbADzymsA88psAPTKbAD0ymwA9c5wAPfV eQD513wA+dd8B/nYfdn7237/+9x9//vcfP/73Hr/+9t4//vadv/72nX/+9p0//vadP/72nX/+9p2//vb eP/723r/+9x8//vdf//83oL//N6F/fvehy773ocA+96GAPnXfQD2z3MA9c5yAPTOcQD0zW8A9M1vAPTN bgD20HAA9tJxAPbQcAD0zm8A9M1wAPXOcgD1z3QA9c91APXPdCX10Hbc9tN7//fVfv/414H/+NeC//jX gf/31oD/9tR95PbUfC/31H0A99V+APfWfgD31oAA+NiCAPnbhgD63IcA+tyHAPrchwD63IcA+tyHAPrc hwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD20XgA9tF4APbReAD20XgA9tF4APbR eAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9dB2APTPdQD1znQA9c90APXOdAD0znQA9c1zDvXM c731znX/9tB4//bRef/20Xn/9tF59/bSek721H0A99V+APfVfQD303sA9tJ3APbSdAD30nMA9tNzAPXP cAD0zG0A9MtsAPPKawDzyWsA9MlrAPXPcwD41n0A+Nh/APjXfgD4134H+dl/2fvbgP/73H//+9x9//vc e//723r/+9p4//vadv/72nX/+9p1//vadv/72nf/+9t5//vce//73H7/+92B//zehP/834j9/OCKLvzg igD84IoA/OCLAPrchAD20XYA9MxvAPTNbwD0zW8A9M1uAPbQcAD20nEA9tBwAPTObwD0zXAA9c5yAPXP dAD1z3UA9c90APXNcyX1zXPb9s91//bQeP/20Xn/9tF5//bReeT20nov9tR8APbVfQD31X4A99Z+APfW gAD42IIA+duGAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbR eAD10HYA9M91APXOdAD1z3QA9c50APTOdAD1zXMA9MtxDvTMcpD1zHLo9c1z8vXOdcX2z3Y/9tJ6APbU fQD31X4A99V9APfTewD20ncA9tJ0APfScwD203MA9c9wAPTMbQD0y2sA88lpAPTLbwD41HsA+dmCAPnZ gQD52YEA+dmBAPnZgQf52oLZ+9yD//vdgv/73X//+919//vce//73Hn/+9t4//vbd//723f/+9t4//vc ef/73Hv/+919//vegP/73oL//N+F//zfif3734su+9+LAPvfiwD734sA/OCMAPzfigD4134A9c5xAPTM bQD0zW0A9tBwAPbScQD20HAA9M5vAPTNcAD1znIA9c90APXPdQD1z3QA9c1zAPTLcR/0zHKq9cxz7vXO dO/1z3Wy9s93J/bSegD21H0A9tV9APfVfgD31n4A99aAAPjYggD524YA+tyHAPrchwD63IcA+tyHAPrc hwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A9tF4APbReAD20XgA9tF4APbR eAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APXQdgD0z3UA9c50APXPdAD1znQA9M50APXN cwD0y3EA9MxyAPXNcw31znQV9c92AvbPdgD20noA9tR9APfVfgD31X0A99N7APbSdwD20nQA99JzAPbT cwD1z3AA9MtsAPTMbQD20ngA+dmDAPnbhgD52oQA+dqEAPnahAD52oQA+dqEB/nbhdn73YX/+96E//vd gv/73X//+9x9//vce//73Hr/+9t5//vbef/73Hn/+9x7//vcfP/73X//+96C//zehP/83of/+96J/fve iy773osA+96LAPveiwD73osA+9+LAPvfjAD63YgA99V9APXOcAD1z24A9tJxAPbQcAD0zm8A9M1wAPXO cgD1z3QA9c91APXPdAD1zXMA9MtyAPTMcwD1zXQR9c51EvbPdgH2z3cA9tJ6APbUfQD21X0A99V+APfW fgD31oAA+NiCAPnbhgD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrc hwD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbR eAD20XgA9dB2APTPdQD1znQA9c90APXOdAD0znQA9c1zAPTLcQD0zHIA9c1zAPXOdAD1z3YA9s92APbS egD21H0A99V+APfVfQD303sA9tJ3APbSdAD30nMA9tNxAPbRcwD31HsA+dqGAPncigD53IgA+duIAPnb iAD524gA+duIAPnbiAD524gH+tyI2fveiP/83ob/+96E//vegv/73X//+9x9//vcfP/73Hv/+9x7//vc fP/73H3/+91+//vdgf/73oP//N6G//vfif/73or9+t2LLvrdiwD63YsA+t2LAPrdiwD63YsA+t2LAPre jAD6340A+tyJAPjXfwD31HUA9tBvAPTObwD0zXAA9c5yAPXPdAD1z3UA9c90APXNcwD0y3IA9MxzAPXN dAD1znUA9s92APbPdwD20noA9tR9APbVfQD31X4A99Z+APfWgAD42IIA+duGAPrchwD63IcA+tyHAPrc hwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////APbReAD20XgA9tF4APbR eAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD10HYA9M91APXOdAD1z3QA9c50APTO dAD1zXMA9MtxAPTMcgD1zXMA9c50APXPdgD2z3YA9tJ6APbUfQD31X4A99V9APfTewD20ncA9tJ0APfS cwD52YAA+tyKAPrejAD63YsA+t2LAPrdiwD63YsA+t2LAPrdiwD63YsA+t2LAPrdiwf73ovZ/N+K//zf iP/834b//N+E//zegv/83oD//N1+//zdff/83X3//N1+//zef//83oH//N+E//zghv/84In//N+K//zf jP373owu+96MAPvejAD73owA+96MAPvejAD73owA+96MAPvejAD73o0A+9+OAPrdigD20XIA9M5uAPTN cAD1znIA9c90APXPdQD1z3QA9c1zAPTLcgD0zHMA9c10APXOdQD2z3YA9s93APbSegD21H0A9tV9APfV fgD31n4A99aAAPjYggD524YA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrc hwD63IcA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbR eAD20XgA9tF4APXQdgD0z3UA9c50APXPdAD1znQA9M50APXNcwD0y3EA9MxyAPXNcwD1znQA9c92APbP dgD20noA9tR9APfVfgD31X0A99N7APbSdwD20nMA+NV5APrdjAD63YsA+t2KAPrdigD63YoA+t2KAPrd igD63YoA+t2KAPrdigD63YoA+t2KB/rejNn834z//N+K//zfiP/834b//N+E//zegv/83oH//N6A//ze gP/83oD//N6B//zeg//834b//OCI//zgi//94I7//OCP/fveji773o4A+96OAPvejgD73o4A+96OAPve jgD73o4A+96OAPvejgD73o4A+9+QAPjXfwD0zW0A9M1wAPXOcgD1z3QA9c91APXPdAD1zXMA9MtyAPTM cwD1zXQA9c51APbPdgD2z3cA9tJ6APbUfQD21X0A99V+APfWfgD31oAA+NiCAPnbhgD63IcA+tyHAPrc hwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD20XgA9tF4APbR eAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9dB2APTPdQD1znQA9c90APXO dAD0znQA9c1zAPTLcQD0zHIA9c1zAPXOdAD1z3YA9s92APbSegD21H0A99V+APfVfQD303sA9tJ3APbS cwD52IMA+tuJAPrbiAD624gA+tuIAPrbiAD624gA+tuIAPrbiAD624gA+tuIAPrbiAD624gH+tyK2fvf jf/834z//OCK//zfiP/834b//N+E//zfg//83oL//N6C//zeg//834T//N+G//zgif/84Iv//eGO//3i kv/84ZL9/OCQLvzgkAD84JAA/OCQAPzgkAD84JAA/OCQAPzgkAD84JAA/OCQAPzgkAD84JEA+9+OAPXP cQD0zW8A9c5yAPXPdAD1z3UA9c90APXNcwD0y3IA9MxzAPXNdAD1znUA9s92APbPdwD20noA9tR9APbV fQD31X4A99Z+APfWgAD42IIA+duGAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrc hwD63IcA+tyHAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbR eAD20XgA9tF4APbReAD10HYA9M91APXOdAD1z3QA9c50APTOdAD1zXMA9MtxAPTMcgD1zXMA9c50APXP dgD2z3YA9tJ6APbUfQD31X4A99V9APfTewD20ncA99R5APrahwD62oYA+tqGAPrahgD62oYA+tqGAPra hgD62oYA+tqGAPrahgD62oYA+tqGAPrahgf624jZ+t6M//zfjf/84Iv//OCK//zgiP/84If//N+F//zf hf/834X//N+F//zfh//84Ij//OGK//3hjf/94pD//eOU//3klf3945Qu/eOUAP3jlAD945QA/eOUAP3j lAD945QA/eOUAP3jlAD945QA/eOUAP3jlAD95JYA+NiBAPTMbgD1znIA9c90APXPdQD1z3QA9c1zAPTL cgD0zHMA9c10APXOdQD2z3YA9s93APbSegD21H0A9tV9APfVfgD31n4A99aAAPjYggD524YA+tyHAPrc hwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A9tF4APbR eAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APXQdgD0z3UA9c50APXP dAD1znQA9M50APXNcwD0y3EA9MxyAPXNcwD1znQA9c92APbPdgD20noA9tR9APfVfgD31X0A99N7APbS dwD41n8A+diEAPnYgwD52IMA+diDAPnYgwD52IMA+diDAPnYgwD52IMA+diDAPnYgwD52IMA+diDB/nZ hdr63Ir/+t6N//zfjP/834v//OCK//zgif/834f//N+H//zfh//834f//OCI//zgiv/84Yz//OGO//zh kf/84pP//eOU/f3jlS/945UA/eOVAP3jlQD945UA/eOVAP3jlQD945UA/eOVAP3jlQD945UA/eOVAP3j lgD84pIA9c9zAPXNcQD1z3QA9c91APXPdAD1zXMA9MtyAPTMcwD1zXQA9c51APbPdgD2z3cA9tJ6APbU fQD21X0A99V+APfWfgD31oAA+NiCAPnbhgD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrc hwD63IcA+tyHAPrchwD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbR eAD20XgA9tF4APbReAD20XgA9dB2APTPdQD1znQA9c90APXOdAD0znQA9c1zAPTLcQD0zHIA9c1zAPXO dAD1z3YA9s92APbSegD21H0A99V+APfVfQD303oA99N7APjWggD41oIA+NaCAPjWggD41oIA+NaCAPjW ggD41oIA+NaCAPjWggD41oIA+NaCAPjWggD41oIG+NaC1/nZhf/63Ir/+92M//vejP/834v//N+K//zf if/834n//N+J//zfif/834r//N+M//zgjv/84I///OCQ//vfkP/74JH8/OGSLPzhkgD84ZIA/OGSAPzh kgD84ZIA/OGSAPzhkgD84ZIA/OGSAPzhkgD84ZIA/OGSAPzilAD414EA9cxwAPXPdAD1z3UA9c90APXN cwD0y3IA9MxzAPXNdAD1znUA9s92APbPdwD20noA9tR9APbVfQD31X4A99Z+APfWgAD42IIA+duGAPrc hwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////APbR eAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD10HYA9M91APXO dAD1z3QA9c50APTOdAD1zXMA9MtxAPTMcgD1zXMA9c50APXPdgD2z3YA9tJ6APbUfQD31X4A99V9APfT egD41X4A+daBAPnWgAD51oAA+daAAPnWgAD51oAA+daAAPnWgAD51oAA+daAAPnWgAD51oAA+daAAPnW gAD41X+w+NV///rYhP/624j/+9yK//vdiv/83or//N6K//zeif/83on//N6K//zeiv/83oz/+96N//ve jf/73Yz/+9yL//vdjeP8348P/N+PAPzfjwD8348A/N+PAPzfjwD8348A/N+PAPzfjwD8348A/N+PAPzf jwD8348A/N+QAPvdjAD1znMA9c5zAPXPdQD1z3QA9c1zAPTLcgD0zHMA9c10APXOdQD2z3YA9s93APbS egD21H0A9tV9APfVfgD31n4A99aAAPjYggD524YA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrc hwD63IcA+tyHAPrchwD63IcA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbR eAD20XgA9tF4APbReAD20XgA9tF4APXQdgD0z3UA9c50APXPdAD1znQA9M50APXNcwD0y3EA9MxyAPXN cwD1znQA9c92APbPdgD20noA9tR9APfVfgD31X0A99R7APjUfQD41H4A+NR+APjUfgD41H4A+NR+APjU fgD41H4A+NR+APjUfgD41H4A+NR+APjUfgD41H4A+NR+APjUfjz30nv499N8//jVgP/514P/+tmF//ra hv/62ob/+tqG//rahv/62of/+tuH//rbiP/62of/+tmG//nYhf/62Ib/+tuJcvrcigD63IoA+tyKAPrc igD63IoA+tyKAPrcigD63IoA+tyKAPrcigD63IoA+tyKAPrcigD63IoA+tyLAPbRdwD1znMA9c91APXP dAD1zXMA9MtyAPTMcwD1zXQA9c51APbPdgD2z3cA9tJ6APbUfQD21X0A99V+APfWfgD31oAA+NiCAPnb hgD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrchwD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9tF4APbReAD20XgA9dB2APTP dQD1znQA9c90APXOdAD0znQA9c1zAPTLcQD0zHIA9c1zAPXOdAD1z3YA9s92APbSegD21H0A99V+APfV fQD303sA99N8APfTfAD303wA99N8APfTfAD303wA99N8APfTfAD303wA99N8APfTfAD303wA99N8APfT fAD303wA99N8APfSe0L2z3jF9s937fbQee730Xrt99J87ffTfe33037t99R+7ffUfu341H7t+NN97fjT fe34033v+NR/1/nXg2f62oYA+tqGAPrahgD62oYA+tqGAPrahgD62oYA+tqGAPrahgD62oYA+tqGAPra hgD62oYA+tqGAPrahgD62ocA9tF3APXOcwD1z3UA9c90APXNcwD0y3IA9MxzAPXNdAD1znUA9s92APbP dwD20noA9tR9APbVfQD31X4A99Z+APfWgAD42IIA+duGAPrchwD63IcA+tyHAPrchwD63IcA+tyHAPrc hwD63IcA+tyHAPrchwD63IcA+tyHAP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A//////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////wAA//////////// //////8AAH/////////////////+AAB//////////////////gAAP/////////////////wAAD////// ///////////8AAA//////////////////AAAP/////////////////wAAD/////////////////8AAA/ /////////////////AAAP/////////////////wAAD/////////////8P//8AAA///w/////////+B// /AAAP//4H/////////AP//wAAD//8A/////////gB//8AAA//+AH////////wAP//AAAP//AA/////// /4AB//AAAB//gAH///////8AAP+AAAAD/wAA///////+AAB+AAAAAP4AAH///////AAAOAAAAAA8AAA/ //////gAAAAAAAAACAAAH//////4AAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAP//////AAAAAAAAAA AAAAD//////4AAAAAAAAAAAAAA//////+AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAP//////+AAAA AAAAAAAAAH///////wAAAAAAAAAAAAD///////+AAAAAAAAAAAAB////////wAAAAAAAAAAAA/////// /+AAAAAAAAAAAAf////////wAAAAAAAAAAAP////////+AAAAAAAAAAAH/////////gAAAAAAAAAAD// ///////4AAAAAAAAAAAf////////8AAAAAAAAAAAH/////////AAAAAAAAAAAA/////////gAAAAAAAA AAAP////////4AAAAAAAAAAAB////////8AAAAAAAAAAAAf////////AAAAAAAAAAAAH////////wAAA AAAAAAAAA////////4AAAAAAAAAAAAP///////+AAAAAAAAAAAAD//////AAAAAAAAAAAAAAAAAP///g AAAAAAAAAAAAAAAAA///gAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAA Af//gAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAA AAAAAAH//4AAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAH//4AAAAAA AAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAB//+A AAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAAAAAAAAAAAAAH///4AIAAAAAAAAAAAAAA D/////+AAAAAAAAAAAAD////////gAAAAAAAAAAAA////////8AAAAAAAAAAAAP////////AAAAAAAAA AAAH////////4AAAAAAAAAAAB////////+AAAAAAAAAAAAf////////gAAAAAAAAAAAP////////8AAA AAAAAAAAD/////////AAAAAAAAAAAB/////////4AAAAAAAAAAAf/////////AAAAAAAAAAAP/////// //gAAAAAAAAAAB/////////wAAAAAAAAAAAP////////4AAAAAAAAAAAB////////8AAAAAAAAAAAAP/ //////+AAAAAAAAAAAAB////////AAAAAAAAAAAAAP///////gAAAAAAAAAAAAB///////wAAAAAAAAA AAAAP//////4AAAAAAAAAAAAAB//////+AAAAAAAAAAAAAAP//////AAAAAAAAAAAAAAD//////wAAAA AAAAAAAAAA//////+AAAAAAAAAAAAAAP//////gAABAAAAAACAAAH//////8AAA8AAAAADwAAD////// /gAAfwAAAAD+AAB///////8AAP/AAAAH/wAA////////gAH/+AAAP/+AAf///////8AD//wAAD//wAP/ ///////gB//8AAA//+AH////////8A///AAAP//wD/////////gf//wAAD//+B/////////+P//8AAA/ //4//////////////AAAP/////////////////wAAD/////////////////8AAA///////////////// /AAAP/////////////////wAAD/////////////////8AAA//////////////////AAAP/////////// //////4AAD/////////////////+AAB//////////////////wAA//////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////8= ================================================ FILE: FreeHttpControl/SettingWindow.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class SettingWindow { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingWindow)); this.lb_info_1 = new System.Windows.Forms.Label(); this.lb_info_2 = new System.Windows.Forms.Label(); this.lb_info_3 = new System.Windows.Forms.Label(); this.lb_info_4 = new System.Windows.Forms.Label(); this.lb_info_5 = new System.Windows.Forms.Label(); this.myEnableSwitch_IsSyncTamperRule = new FreeHttp.FreeHttpControl.MyEnableSwitch(); this.myEnableSwitch_IsEnableHttpsService = new FreeHttp.FreeHttpControl.MyEnableSwitch(); this.myEnableSwitch_IsSkipHideUi = new FreeHttp.FreeHttpControl.MyEnableSwitch(); this.myEnableSwitch_IsSkipConnectTunnels = new FreeHttp.FreeHttpControl.MyEnableSwitch(); this.myEnableSwitch_IsOnlyMatchFistTamperRule = new FreeHttp.FreeHttpControl.MyEnableSwitch(); this.myEnableSwitch_IsHideSelfSession = new FreeHttp.FreeHttpControl.MyEnableSwitch(); this.lb_info_6 = new System.Windows.Forms.Label(); this.SuspendLayout(); // // lb_info_1 // this.lb_info_1.AutoSize = true; this.lb_info_1.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lb_info_1.Location = new System.Drawing.Point(0, 12); this.lb_info_1.Name = "lb_info_1"; this.lb_info_1.Size = new System.Drawing.Size(231, 14); this.lb_info_1.TabIndex = 1; this.lb_info_1.Text = "is only match first tamper rule "; // // lb_info_2 // this.lb_info_2.AutoSize = true; this.lb_info_2.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lb_info_2.Location = new System.Drawing.Point(0, 44); this.lb_info_2.Name = "lb_info_2"; this.lb_info_2.Size = new System.Drawing.Size(168, 14); this.lb_info_2.TabIndex = 2; this.lb_info_2.Text = "is skip connect tunnels"; // // lb_info_3 // this.lb_info_3.AutoSize = true; this.lb_info_3.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lb_info_3.Location = new System.Drawing.Point(0, 76); this.lb_info_3.Name = "lb_info_3"; this.lb_info_3.Size = new System.Drawing.Size(182, 14); this.lb_info_3.TabIndex = 3; this.lb_info_3.Text = "is skip filtered sessions"; // // lb_info_4 // this.lb_info_4.AutoSize = true; this.lb_info_4.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lb_info_4.Location = new System.Drawing.Point(0, 108); this.lb_info_4.Name = "lb_info_4"; this.lb_info_4.Size = new System.Drawing.Size(168, 14); this.lb_info_4.TabIndex = 7; this.lb_info_4.Text = "is enable https service"; // // lb_info_5 // this.lb_info_5.AutoSize = true; this.lb_info_5.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lb_info_5.Location = new System.Drawing.Point(0, 140); this.lb_info_5.Name = "lb_info_5"; this.lb_info_5.Size = new System.Drawing.Size(140, 14); this.lb_info_5.TabIndex = 9; this.lb_info_5.Text = "is sync tamper rule"; // // myEnableSwitch_IsSyncTamperRule // this.myEnableSwitch_IsSyncTamperRule.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.myEnableSwitch_IsSyncTamperRule.IsEnable = false; this.myEnableSwitch_IsSyncTamperRule.Location = new System.Drawing.Point(284, 135); this.myEnableSwitch_IsSyncTamperRule.Name = "myEnableSwitch_IsSyncTamperRule"; this.myEnableSwitch_IsSyncTamperRule.Size = new System.Drawing.Size(54, 27); this.myEnableSwitch_IsSyncTamperRule.TabIndex = 10; // // myEnableSwitch_IsEnableHttpsService // this.myEnableSwitch_IsEnableHttpsService.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.myEnableSwitch_IsEnableHttpsService.IsEnable = false; this.myEnableSwitch_IsEnableHttpsService.Location = new System.Drawing.Point(284, 102); this.myEnableSwitch_IsEnableHttpsService.Name = "myEnableSwitch_IsEnableHttpsService"; this.myEnableSwitch_IsEnableHttpsService.Size = new System.Drawing.Size(54, 27); this.myEnableSwitch_IsEnableHttpsService.TabIndex = 8; // // myEnableSwitch_IsSkipHideUi // this.myEnableSwitch_IsSkipHideUi.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.myEnableSwitch_IsSkipHideUi.IsEnable = false; this.myEnableSwitch_IsSkipHideUi.Location = new System.Drawing.Point(284, 69); this.myEnableSwitch_IsSkipHideUi.Name = "myEnableSwitch_IsSkipHideUi"; this.myEnableSwitch_IsSkipHideUi.Size = new System.Drawing.Size(54, 27); this.myEnableSwitch_IsSkipHideUi.TabIndex = 6; // // myEnableSwitch_IsSkipConnectTunnels // this.myEnableSwitch_IsSkipConnectTunnels.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.myEnableSwitch_IsSkipConnectTunnels.IsEnable = false; this.myEnableSwitch_IsSkipConnectTunnels.Location = new System.Drawing.Point(284, 36); this.myEnableSwitch_IsSkipConnectTunnels.Name = "myEnableSwitch_IsSkipConnectTunnels"; this.myEnableSwitch_IsSkipConnectTunnels.Size = new System.Drawing.Size(54, 27); this.myEnableSwitch_IsSkipConnectTunnels.TabIndex = 5; // // myEnableSwitch_IsOnlyMatchFistTamperRule // this.myEnableSwitch_IsOnlyMatchFistTamperRule.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.myEnableSwitch_IsOnlyMatchFistTamperRule.IsEnable = false; this.myEnableSwitch_IsOnlyMatchFistTamperRule.Location = new System.Drawing.Point(284, 3); this.myEnableSwitch_IsOnlyMatchFistTamperRule.Name = "myEnableSwitch_IsOnlyMatchFistTamperRule"; this.myEnableSwitch_IsOnlyMatchFistTamperRule.Size = new System.Drawing.Size(54, 27); this.myEnableSwitch_IsOnlyMatchFistTamperRule.TabIndex = 0; // // myEnableSwitch_IsHideSelfSession // this.myEnableSwitch_IsHideSelfSession.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.myEnableSwitch_IsHideSelfSession.IsEnable = false; this.myEnableSwitch_IsHideSelfSession.Location = new System.Drawing.Point(279, 166); this.myEnableSwitch_IsHideSelfSession.Name = "myEnableSwitch_IsHideSelfSession"; this.myEnableSwitch_IsHideSelfSession.Size = new System.Drawing.Size(63, 29); this.myEnableSwitch_IsHideSelfSession.TabIndex = 12; // // lb_info_6 // this.lb_info_6.AutoSize = true; this.lb_info_6.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lb_info_6.Location = new System.Drawing.Point(0, 172); this.lb_info_6.Name = "lb_info_6"; this.lb_info_6.Size = new System.Drawing.Size(217, 14); this.lb_info_6.TabIndex = 11; this.lb_info_6.Text = "is hide freehttp self sessions"; // // SettingWindow // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(338, 198); this.Controls.Add(this.myEnableSwitch_IsHideSelfSession); this.Controls.Add(this.lb_info_6); this.Controls.Add(this.myEnableSwitch_IsSyncTamperRule); this.Controls.Add(this.lb_info_5); this.Controls.Add(this.myEnableSwitch_IsEnableHttpsService); this.Controls.Add(this.lb_info_4); this.Controls.Add(this.myEnableSwitch_IsSkipHideUi); this.Controls.Add(this.myEnableSwitch_IsSkipConnectTunnels); this.Controls.Add(this.lb_info_3); this.Controls.Add(this.lb_info_2); this.Controls.Add(this.lb_info_1); this.Controls.Add(this.myEnableSwitch_IsOnlyMatchFistTamperRule); this.Font = new System.Drawing.Font("华文楷体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "SettingWindow"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "SettingWindow"; this.Load += new System.EventHandler(this.SettingWindow_Load); this.ResumeLayout(false); this.PerformLayout(); } #endregion private MyEnableSwitch myEnableSwitch_IsOnlyMatchFistTamperRule; private System.Windows.Forms.Label lb_info_1; private System.Windows.Forms.Label lb_info_2; private System.Windows.Forms.Label lb_info_3; private MyEnableSwitch myEnableSwitch_IsSkipConnectTunnels; private MyEnableSwitch myEnableSwitch_IsSkipHideUi; private MyEnableSwitch myEnableSwitch_IsEnableHttpsService; private System.Windows.Forms.Label lb_info_4; private MyEnableSwitch myEnableSwitch_IsSyncTamperRule; private System.Windows.Forms.Label lb_info_5; private MyEnableSwitch myEnableSwitch_IsHideSelfSession; private System.Windows.Forms.Label lb_info_6; } } ================================================ FILE: FreeHttpControl/SettingWindow.cs ================================================ using FreeHttp.FiddlerHelper; using FreeHttp.HttpHelper; using FreeHttp.MyHelper; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class SettingWindow : Form { public SettingWindow() { InitializeComponent(); } public SettingWindow(FiddlerModificSettingInfo yourModifcSettingInfo):this() { modifcSettingInfo = yourModifcSettingInfo; } private FiddlerModificSettingInfo modifcSettingInfo; private void SettingWindow_Load(object sender, EventArgs e) { if (modifcSettingInfo != null) { myEnableSwitch_IsOnlyMatchFistTamperRule.IsEnable = modifcSettingInfo.IsOnlyMatchFirstTamperRule; myEnableSwitch_IsSkipHideUi.IsEnable = modifcSettingInfo.IsSkipUiHide; myEnableSwitch_IsSkipConnectTunnels.IsEnable = modifcSettingInfo.IsSkipConnectTunnels; myEnableSwitch_IsEnableHttpsService.IsEnable = MyGlobalHelper.myHttpListener.IsStart; myEnableSwitch_IsSyncTamperRule.IsEnable = modifcSettingInfo.IsSyncTamperRule; myEnableSwitch_IsHideSelfSession.IsEnable = modifcSettingInfo.IsHideSelfSession; myEnableSwitch_IsOnlyMatchFistTamperRule.OnChangeEnable += myEnableSwitch_IsOnlyMatchFistTamperRule_OnChangeEable; myEnableSwitch_IsSkipHideUi.OnChangeEnable += myEnableSwitch_IsDefaultEnableRule_OnChangeEable; myEnableSwitch_IsSkipConnectTunnels.OnChangeEnable += myEnableSwitch_IsConnectTunnels_OnChangeEable; myEnableSwitch_IsEnableHttpsService.OnChangeEnable += myEnableSwitch_IsEnableHttpsService_OnChangeEnable; myEnableSwitch_IsSyncTamperRule.OnChangeEnable += MyEnableSwitch_IsSyncTamperRule_OnChangeEnable; myEnableSwitch_IsHideSelfSession.OnChangeEnable += MyEnableSwitch_IsHideSelfSession_OnChangeEnable; } //this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.MaximumSize = this.Size; this.MinimumSize = this.Size; } void myEnableSwitch_IsConnectTunnels_OnChangeEable(object sender, MyEnableSwitch.ChangeEnableEventArgs e) { modifcSettingInfo.IsSkipConnectTunnels = e.IsEnable; } void myEnableSwitch_IsDefaultEnableRule_OnChangeEable(object sender, MyEnableSwitch.ChangeEnableEventArgs e) { modifcSettingInfo.IsSkipUiHide = e.IsEnable; } void myEnableSwitch_IsOnlyMatchFistTamperRule_OnChangeEable(object sender, MyEnableSwitch.ChangeEnableEventArgs e) { modifcSettingInfo.IsOnlyMatchFirstTamperRule = e.IsEnable; } private void MyEnableSwitch_IsSyncTamperRule_OnChangeEnable(object sender, MyEnableSwitch.ChangeEnableEventArgs e) { modifcSettingInfo.IsSyncTamperRule = e.IsEnable; } private void MyEnableSwitch_IsHideSelfSession_OnChangeEnable(object sender, MyEnableSwitch.ChangeEnableEventArgs e) { modifcSettingInfo.IsHideSelfSession = e.IsEnable; } void myEnableSwitch_IsEnableHttpsService_OnChangeEnable(object sender, MyEnableSwitch.ChangeEnableEventArgs e) { if (e.IsEnable) { if(!MyGlobalHelper.IsAdministrator()) { MessageBox.Show("Enable http sevice need administrator rights \r\nPlease use administrator privileges to open the application", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); myEnableSwitch_IsEnableHttpsService.IsEnable = false; return; } bool isAffirm = false; int listenerPort = 443; if (FreeHttp.WebService.HttpServer.MySocketHelper.IsPortInTcpListening(listenerPort)) { listenerPort = 9990; while (FreeHttp.WebService.HttpServer.MySocketHelper.IsPortInTcpListening(listenerPort)) { listenerPort++; if(listenerPort==65537) { MessageBox.Show("can not find leisure port from 9990 to 65536","Stop",MessageBoxButtons.OK,MessageBoxIcon.Stop); myEnableSwitch_IsEnableHttpsService.IsEnable = false; return; } } } string listenerPrefixesStr = string.Format(@"https://*:{0}/", listenerPort); SetVaule f = new SetVaule("Set listener prefixes", "you can set listener prefixes for your http service,like https://*:443/", listenerPrefixesStr, new Func((string checkValue) => { return (checkValue.StartsWith("http") && checkValue.EndsWith("/")?null:""); })); f.OnSetValue += new EventHandler((obj, tag) => { listenerPrefixesStr = tag.SetValue; isAffirm = true; }); f.ShowDialog(); if(!isAffirm) { myEnableSwitch_IsEnableHttpsService.IsEnable = false; return; } int portIndex = listenerPrefixesStr.LastIndexOf(":"); if (!(portIndex > 0 && listenerPrefixesStr.EndsWith("/") && int.TryParse(listenerPrefixesStr.Substring(portIndex + 1, listenerPrefixesStr.Length - portIndex - 2), out listenerPort))) { MessageBox.Show("your listener prefixes is illegality", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); myEnableSwitch_IsEnableHttpsService.IsEnable = false; return; } if (Fiddler.CertMaker.GetRootCertificate() == null) { MessageBox.Show("can not get Fiddler RootCertificate", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); myEnableSwitch_IsEnableHttpsService.IsEnable = false; return; } else { if (FreeHttp.WebService.HttpServer.MySocketHelper.IsPortInTcpListening(listenerPort)) { MessageBox.Show(string.Format("this port {0} is in listening with other process", listenerPort), "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); myEnableSwitch_IsEnableHttpsService.IsEnable = false; return; } try { FreeHttp.WebService.HttpServer.CertificatesHelper.AddCertificateToX509Store(Fiddler.CertMaker.GetRootCertificate()); FreeHttp.WebService.HttpServer.CertificatesHelper.BindingCertificate(Fiddler.CertMaker.GetRootCertificate(), listenerPort); } catch (Exception ex) { MessageBox.Show(string.Format("fail to BindingCertificate with {0}", ex.Message), "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); myEnableSwitch_IsEnableHttpsService.IsEnable = false; return; } } try { MyGlobalHelper.myHttpListener.Start(listenerPrefixesStr); MyGlobalHelper.PutGlobalMessage(this, new MyGlobalHelper.GlobalMessageEventArgs(false,string.Format("add listening for [{0}]",listenerPrefixesStr))); } catch (Exception ex) { MessageBox.Show(string.Format("fail to Start HttpListener with {0}", ex.Message), "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); MyGlobalHelper.myHttpListener.Stop(); myEnableSwitch_IsEnableHttpsService.IsEnable = false; return; } } else { MyGlobalHelper.myHttpListener.Stop(); } } } } ================================================ FILE: FreeHttpControl/SettingWindow.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAfYAAAAEAIAAoAgEAFgAAACgAAAB9AAAAAAEAAAEAIAAAAAAAAPoAAF8jAABfIwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAC5XAAAuVwAALlcAAC5XAAAuVwAALlcAAC5XAAAuVwAALlcAAC5XAAAuVwAALlcAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAC5XAAAuVwAALlcAAC5XAAAuVwAB7lcACa5XAA6uVwAO7lcADu5XAA5uVwAH7lc AAO5XAAAuVwAALlcAAC5XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuVwAALlcAAC5XAAAuVwAC7lcAFa5XACxuVwA5Llc APS5XAD0uVwA9LlcAPO5XADeuVwAo7lcAEW5XAAFuVwAALlcAAC5XAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALlcAAC5XAAAuVwAALlc ACm5XACsuVwA+blcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA8rlcAJS5XAAZuVwAALlc AAC5XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAC5XAAAuVwAALlcAAC5XAA0uVwA0LlcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcALe5XAAfuVwAALlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAALlcAAC5XAAAuVwAILlcAMm5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAKu5XAAOuVwAALlcAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XAAAuVwAALlcAAO5XACUuVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/blc AG+5XAAAuVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALlc AAC5XAAAuVwANrlcAOy5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA1blcABu5XAAAuVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAuVwAALlcAAC5XACDuVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD9uVwAW7lcAAC5XAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XAAAuVwACblcALy5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XACWuVwAALlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALlc AAC5XAAYuVwA2LlcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcALi5XAAHuVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAuVwAALlcAB+5XADguVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwAw7lcAAu5XAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XAAAuVwAGrlcANu5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAC7uVwACLlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALlc AAC5XAALuVwAwrlcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAJ25XAAAuVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADktGEA5LRhAOS0YQDktGEA5LRhAOS0YQDktGEA5LRhAOS0 YQDktGEA5LRhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAuVwAALlcAAC5XACOuVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwAZblcAAC5XAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AACYdfsAmHX7AJh1+wCYdfsAmHX7AJh1+wCYdfsAmHX7AJh1+wCYdfsAmHX7AAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADktGEA5LRhAOS0YQDktGEA5LRhAuS0 YRfktGEv5LRhO+S0YTfktGEi5LRhCuS0YQDktGEA5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XAAAuVwAALlcAEG5XADyuVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AN65XAAkuVwAALlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAACYdfsAmHX7AJh1+wCYdfsAmHX7Dph1+yeYdfs5mHX7Oph1+yuYdfsSmHX7AJh1 +wCYdfsAmHX7AJh1+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0 YQDktGEA5LRhCOS0YUnktGGe5LRh1eS0Ye3ktGH05LRh8eS0YePktGG85LRhcuS0YR/ktGEA5LRhAOS0 YQDktGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALlc AAC5XAAAuVwAB7lcAKa5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwAgblcAAC5XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYdfsAmHX7AJh1+wCYdfsAmHX7LJh1+4KYdfvGmHX755h1 +/OYdfvzmHX76ph1+86YdfuQmHX7Oph1+wOYdfsAmHX7AJh1+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAOS0YQDktGEA5LRhAOS0YSjktGGl5LRh9eS0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh1OS0YV3ktGEE5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAALlcAAC5XAAAuVwALblcANq5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAL+5XAAYuVwAALlcAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmHX7AJh1+wCYdfsAmHX7DJh1 +3aYdfvimHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+YdfvtmHX7jph1+xiYdfsAmHX7AJh1 +wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADktGEA5LRhAOS0YQDktGE55LRh0eS0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh9uS0YX/ktGEH5LRhAOS0YQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuVwAALlcAAC5XAAAuVwASblc AOK5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XADNuVwALrlc AAC5XAAAuVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AACYdfsAmHX7AJh1+xKYdfuemHX7/Zh1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1 +/+Ydfv/mHX7uZh1+yKYdfsAmHX7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS0YQDktGEA5LRhKOS0 YdHktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh+eS0 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADktGEA5LRhF+S0YdXktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGFn5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIPjMASD4zAkg+ M6lIPjP/SD4z/0g+M4BIPjMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJh1+wCYdfsAmHX7j5h1+/+Ydfv/mHX7/5h1 +/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1 +7WYdfsHmHX7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS0YQDktGEw5LRh7eS0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0YY7ktGEA5LRhAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAEg+MwBIPjMCSD4zqUg+M/9IPjP/SD4zgEg+MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmHX7AJh1 +waYdfu1mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1 +/+Ydfv/mHX7/5h1+/+Ydfv/mHX71Zh1+xaYdfsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YTzktGH05LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRhoOS0YQDktGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASD4zAEg+MwJIPjOpSD4z/0g+M/9IPjOASD4zAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAACYdfsAmHX7C5h1+8KYdfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1 +/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+YdfvgmHX7H5h1+wAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADktGEA5LRhOOS0YfLktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGGZ5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIPjMASD4zAkg+ M6lIPjP/SD4z/0g+M4BIPjMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJh1+wCYdfsJmHX7vph1+/+Ydfv/mHX7/5h1 +/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1 +9yYdfsbmHX7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS0YQDktGEj5LRh4+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0YXzktGEA5LRhAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAEg+MwBIPjMCSD4zqUg+M/9IPjP/SD4zgEg+MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmHX7AJh1 +wKYdfukmHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1 +/+Ydfv/mHX7/5h1+/+Ydfv/mHX7x5h1+w6YdfsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQrktGG95LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 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 MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABIPjMASD4zAEg+MwBIPjMXSD4zq0g+M/9IPjP/SD4z/0Y9NKiMUBQ4ulwAprlc APy5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA9btcAIxrRyM9Rz40xkg+M/9IPjP/SD4z/Eg+ M41IPjMKSD4zAEg+MwBIPjMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIPjMASD4zAEg+MwBIPjMXSD4zq0g+ M/9HPjT/XkQp/qdXCOy6XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/ulwA/ZtU Du1VQS3/Rz40/0g+M/xIPjONSD4zCkg+MwBIPjMASD4zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABIPjMASD4zAEg+MwBIPjMXRj00qV5EKf6kVwn/ulwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/ulwA/5hTD/9UQS35Rj00jEk+MwpIPjMASD4zAEg+MwAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIPjMAeksdAIJNGQCMUBU4p1cI7LpcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/6JWCtaHTxcdf00aAG1I IgBIPjMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALlcAAC5XAAAuFwADLpc AKa6XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/ulwA/LpcAIS3WwECuVwAALlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAC5XAAAuVwAALlcAAC5XABuuVwA/LlcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA8blcAEu5XAAAuVwAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQDktGEA5LRhAOS0YQDktGEA5LRhAOS0YQDktGEA5LRhAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAALlcAAC5XAAAuVwAKblcAN65XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwAw7lc ABS5XAAAuVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQDktGEA5LRhAOS0YQDktGEO5LRhHOS0 YR7ktGEW5LRhBuS0YQDktGEA5LRhAOS0YQDktGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuVwAALlcAAG5XACPuVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD9uVwAablcAAC5XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS0YQDktGEA5LRhAOS0 YQ7ktGFP5LRhmeS0YcjktGHd5LRh4OS0YdXktGG05LRhduS0YSnktGEA5LRhAOS0YQDktGEAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmHX7AJh1 +wCYdfsAmHX7AJh1+wCYdfsAmHX7AJh1+wCYdfsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALlc AAC5XAAAuVwAKrlcAOO5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XADJuVwAE7lcAAC5XAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADktGEA5LRhAOS0YQDktGFB5LRhuuS0YfjktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh4uS0 YX/ktGET5LRhAOS0YQDktGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAJh1+wCYdfsAmHX7AJh1+wCYdfsHmHX7Dph1+wmYdfsAmHX7AJh1+wCYdfsAmHX7AAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAuVwAALlcAAC5XAB4uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc APm5XABSuVwAALlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQDktGEC5LRhZeS0YenktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0YbPktGEh5LRhAOS0YQDktGEAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJh1+wCYdfsAmHX7AJh1+wGYdfs0mHX7hZh1+7mYdfvJmHX7vZh1 +46Ydfs/mHX7BJh1+wCYdfsAmHX7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XAAAuVwADblcAMK5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAJ65XAABuVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS0YQDktGEA5LRhAOS0YVzktGHy5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0YbbktGEW5LRhAOS0 YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmHX7AJh1+wCYdfsLmHX7fJh1 ++mYdfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/CYdfuPmHX7E5h1+wCYdfsAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuVwAALlc AAC5XAAyuVwA7blcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA1rlcABi5XAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0 YQDktGEu5LRh3+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0YYrktGEC5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJh1 +wCYdfsAmHX7BZh1+4iYdfv9mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+YdfuhmHX7DZh1 +wCYdfsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAC5XAAAuVwAALlcAGG5XAD+uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XADzuVwAPLlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADktGEA5LRhA+S0YZrktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh6+S0YTbktGEA5LRhAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAmHX7AJh1+wCYdftQmHX79Zh1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1 +/+Ydfv/mHX7/5h1+/2YdftrlHLyAFRGUQBIPjMASD4zAEg+MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+ MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+MwBIPjMASD4zAFVBLQCyWgMAuVwAi7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XABjtVsCAEg+MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+ MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+MwBIPjMASD4zANutXgDktGEq5LRh5uS0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRhjOS0 YQDktGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYdfsAmHX7CJh1+7OYdfv/mHX7/5h1 +/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+8yRcOoVAAAAAUg+MwJIPjMCSD4zAkg+ MwJIPjMCSD4zAkg+MwJIPjMCSD4zAkg+MwJIPjMCSD4zAkg+MwJIPjMCSD4zAkg+MwJIPjMCOzs5AotQ FQW5XACruVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7hcAIP/jAAASD4zAkg+ MwJIPjMCSD4zAkg+MwJIPjMCSD4zAkg+MwJIPjMCSD4zAkg+MwJIPjMCSD4zAkg+MwJIPjMC//+MAOKz YGPktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGHL5LRhEOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJh1 +wCYdfsmmHX75Zh1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/lnT3+GJQ dbdGPS+nSD4zqEg+M6hIPjOoSD4zqEg+M6hIPjOoSD4zqEg+M6hIPjOoSD4zqEg+M6hIPjOoSD4zqEg+ M6hIPjOoSD4zqEg+M6hIPjOoTT8xqqRWCee6XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+6XAD/l1MP2Uc+M6dIPjOoSD4zqEg+M6hIPjOoSD4zqEg+M6hIPjOoSD4zqEg+M6hIPjOoSD4zqEg+ M6hIPjOoSD4zqEg+M6hGPTKnsY1S1Oa1Yv/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0YejktGEo5LRhAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAmHX7AJh1+zuYdfv0mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1 +/+Ydfv/mHX7/5h1+/+XdPn/Y1B2/0c9MP9IPjP/SD4z/0g+M/9IPjP/SD4z/0g+M/9IPjP/SD4z/0g+ M/9IPjP/SD4z/0g+M/9IPjP/SD4z/0g+M/9IPjP/SD4z/0g+M/9NPzH/n1UM/7tcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7tdAP+PURP/SD4z/0g+M/9IPjP/SD4z/0g+M/9IPjP/SD4z/0g+ M/9IPjP/SD4z/0g+M/9IPjP/SD4z/0g+M/9IPjP/SD4z/0k+M/+riVD/57Zi/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh8+S0 YTnktGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYdfsAmHX7OZh1+/OYdfv/mHX7/5h1 +/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5d0+P9iUHT/Rz0w/0g+M/9IPjP/SD4z/0g+ M/9IPjP/SD4z/0g+M/9IPjP/SD4z/0g+M/9IPjP/SD4z/0g+M/9IPjP/SD4z/0g+M/9IPjP/SD4z/00/ Mf+eVQz/u1wA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/u10A/49RE/9IPjP/SD4z/0g+ M/9IPjP/SD4z/0g+M/9IPjP/SD4z/0g+M/9IPjP/SD4z/0g+M/9IPjP/SD4z/0g+M/9IPjP/SD4z/6qI UP/ntmL/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGHx5LRhN+S0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJh1 +wCYdfsgmHX735h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/l3T482VS e5NGPS59SD4zf0g+M39IPjN/SD4zf0g+M39IPjN/SD4zf0g+M39IPjN/SD4zf0g+M39IPjN/SD4zf0g+ M39IPjN/SD4zf0g+M39IPjN+TkAwgqhYCNu6XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+6XAD/nVQNxkc+NH1IPjN+SD4zf0g+M39IPjN/SD4zf0g+M39IPjN/SD4zf0g+M39IPjN/SD4zf0g+ M39IPjN/SD4zf0g+M39FOzJ9uJNUveW1Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0YeTktGEk5LRhAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAmHX7AJh1+wSYdfujmHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1 +/+Ydfv/mHX7/5h1+/+Ydfu+qoL/C1hJWwBIPjMASD4zAEg+MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+ MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+MwBIPjMASD4zAE0/MQAAIWQAulwApblcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+6XAB8gU0ZAEg+MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+ MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+MwBIPjMASD4zAJx+TADntmJX5LRh/OS0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRhwuS0 YQzktGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYdfsAmHX7AJh1+z2YdfvqmHX7/5h1 +/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX79ph1+1WYdfsAm3f/AEg+MwBIPjMASD4zAEg+ MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+MwBIPjMAtVsCALlc AAC5XACEuVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/rlcAFy5XAAABCxSAEg+ MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+MwBIPjMASD4zAEg+MwBIPjMA5LRhAOS0 YSDktGHc5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGF95LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJh1 +wCYdfsAmHX7AJh1+2qYdfvzmHX7/5h1+/+Ydfv/mHX7/5h1+/+Ydfv/mHX7/5h1+/qYdfuCmHX7BZh1 +wCYdfsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAC5XAAAuVwAALlcAFi5XAD8uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XADvuVwANblcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADktGEA5LRhAOS0YYfktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh4OS0YSjktGEA5LRhAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJh1+wCYdfsAmHX7A5h1+1mYdfvQmHX7/Zh1+/+Ydfv/mHX7/5h1 +/+YdfvbmHX7a5h1+weYdfsAmHX7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALlcAAC5XAAAuVwAKrlcAOe5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAM25XAASuVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS0YQDktGEA5LRhH+S0Yc7ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0YfzktGFx5LRhAOS0 YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJh1+wCYdfsAmHX7AJh1 +xqYdftdmHX7kZh1+6OYdfuWmHX7Zph1+yKYdfsAmHX7AJh1+wCYdfsAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALlc AAC5XAAIuVwAtrlcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwAkLlcAAC5XAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0 YQDktGEA5LRhQuS0YeLktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRhmuS0YQvktGEA5LRhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAJh1+wCYdfsAmHX7AJh1+wCYdfsAmHX7AZh1+wCYdfsAmHX7AJh1+wCYdfsAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAuVwAALlcAAC5XABouVwA/rlcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc APS5XABEuVwAALlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQDktGEA5LRhReS0YdTktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh9+S0YZHktGER5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYdfsAmHX7AJh1+wCYdfsAmHX7AJh1 +wCYdfsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XAAAuVwAALlcAB65XADYuVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwAurlcAAy5XAAAuVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQDktGEA5LRhJeS0 YZXktGHn5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh+eS0YcfktGFZ5LRhBuS0YQDktGEA5LRhAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAC5XAAAuVwAALlcAHy5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAPi5XABWuVwAALlcAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA5LRhAOS0YQDktGEA5LRhAuS0YS7ktGFw5LRhpOS0Yb3ktGHC5LRhs+S0YY3ktGFP5LRhE+S0 YQDktGEA5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAALlcAAC5XAAAuVwAHLlcAM+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwAsLlc AAu5XAAAuVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQDktGEA5LRhAOS0YQDktGEC5LRhCeS0 YQvktGEF5LRhAOS0YQDktGEA5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALlcAAC5XAAAuVwAVrlc APW5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAOW5XAA3uVwAALlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADktGEA5LRhAOS0YQDktGEA5LRhAOS0YQDktGEA5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAuVwAALlcAAC4XAAEu1wAi7pcAP25XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+6XAD2ulwAab5dAAC5XAAAuVwAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIPjMAmVMOAHBJIQBqRyQ9m1QO7bpcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uFwB/5JSEtdfRCkgZEUmAFlC KwBIPjMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASD4zAEg+MwBIPjMASD4zK0c+ NMdVQS3/mFMP/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7hc Af+MUBT/TkAw/kc+M6pIPjMXSD4zAEg+MwBIPjMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEg+ MwBIPjMASD4zAEg+MytIPjPISD4z/0c+NP9UQS35olYL1bpcAPy5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+6XAD2klIS1k5AMP5HPjP/SD4z/0g+M6tIPjMXSD4zAEg+MwBIPjMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABIPjMASD4zAEg+MwBIPjMrSD4zyEg+M/9IPjP/SD4z/EY9NIuGTxcculwAg7lc APC5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA5bpcAGhfRCkfRz4zqUg+M/9IPjP/SD4z/0g+ M6tIPjMXSD4zAEg+MwBIPjMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASD4zAEg+MwBIPjMASD4zK0g+M8hIPjP/SD4z/0g+ M/xIPjOMST4zCn9MGgC3WwECuVwASrlcAMK5XAD9uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA+LlcAK+5XAA2vl0AAGRF JgBIPjMWSD4zqkg+M/9IPjP/SD4z/0g+M6tIPjMXSD4zAEg+MwBIPjMAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEg+MwBIPjMASD4zAEg+ MytIPjPISD4z/0g+M/9IPjP8SD4zjEg+MwpIPjMAbUgiALlcAAC5XAAAuVwAE7lcAGi5XADIuVwA+blc AP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA/7lcAP+5XAD/uVwA9Llc ALq5XABVuVwAC7lcAAC5XAAAWUIrAEg+MwBIPjMWSD4zqkg+M/9IPjP/SD4z/0g+M6tIPjMXSD4zAEg+ MwBIPjMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABIPjMASD4zAEg+MwBIPjMrSD4zyEg+M/9IPjP/SD4z/Eg+M4xIPjMKSD4zAEg+MwBIPjMAuVwAALlc AAC5XAAAuVwAALlcABO5XABRuVwAnLlcANW5XADzuVwA/7lcAP+6XAD/u10A/7tdAP+6XAD/uVwA/7lc AP25XADvuVwAzLlcAI+5XABDuVwADLlcAAC5XAAAuVwAALlcAABIPjMASD4zAEg+MwBIPjMWSD4zqkg+ M/9IPjP/SD4z/0g+M6tIPjMXSD4zAEg+MwBIPjMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAASD4zAEg+MwBIPjMASD4zK0g+M8hIPjP/SD4z/0g+M/xIPjOMSD4zCkg+ MwBIPjMASD4zAAAAAAAAAAAAAAAAALlcAAC5XAAAuVwAALlcAAC5XAABuVwAF7lcADu5XABhuFwAgpZT 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 /v9Q4P77UOD+VFDg/gBQ4P4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASD4zAEg+MwJIPjOpSD4z/0g+M/9IPjOASD4zAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQ4P4AUOD+KVDg/uRQ4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P72UOD+SFDg/gBQ4P4AAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABQ4P4AUOD+KFDg/udQ4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P6DUOD+AFDg/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIPjMASD4zAkg+ M6lIPjP/SD4z/0g+M4BIPjMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUOD+AFDg/gBQ4P5cUOD+/lDg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P6EUOD+AFDg /gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFDg/gBQ4P46UOD+81Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/pxQ4P4AUOD+AAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAEg+MwBIPjMCSD4zqUg+M/9IPjP/SD4zgEg+MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABQ4P4AUOD+AFDg/n1Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD+/1Dg/qRQ4P4BUOD+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUOD+AFDg/jtQ4P70UOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD+nlDg/gBQ4P4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASD4zAEg+MwJIPjOpSD4z/0g+M/9IPjOASD4zAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFDg/gBQ4P4AUOD+gFDg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+p1Dg/gJQ4P4AAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABQ4P4AUOD+LFDg/upQ4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P6IUOD+AFDg/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIPjMASD4zAkg+ M6lIPjP/SD4z/0g+M4BIPjMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUOD+AFDg/gBQ4P5jUOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P6MUOD+AFDg /gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFDg/gBQ4P4SUOD+zlDg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/lDg/l1Q4P4AUOD+AAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAEg+MwBIPjMCSD4zqUg+M/9IPjP/SD4zgEg+MwDktGEAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAUOD+AFDg/jFQ4P7sUOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD++lDg/lNQ4P4AUOD+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUOD+AFDg/gBQ4P6QUOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7iUOD+JlDg/gBQ4P4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQDktGEA3K5eAP//kABGPTKoST4z/0g+M/9FPDJ/nn9MAOS0 YQDktGEA5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQ4P4AUOD+BlDg/qdQ4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7IUOD+FVDg/gBQ4P4AAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AABQ4P4AUOD+AFDg/jlQ4P7tUOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/pRQ4P4CUOD+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS0YQDktGEA5LRhAOS0YQPktGEr4rNgZbGO UtWsiVD/q4lQ/7iTVL/mtmJZ5LRhIeS0YQDktGEA5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFDg/gBQ4P4AUOD+NFDg /uFQ4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+8lDg/lJQ4P4AUOD+AAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFDg/gBQ4P4AUOD+A1Dg/o5Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7cUOD+KlDg/gBQ4P4AAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADktGEA5LRhAOS0 YQDktGEv5LRhnOS0YefktGH/5rVi/+e2Yv/ntmL/5bVh/+S0Yf3ktGHe5LRhiOS0YSDktGEA5LRhAOS0 YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAUOD+AFDg/gBQ4P4AUOD+UlDg/uRQ4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /vJQ4P5vUOD+AlDg/gBQ4P4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFDg/gBQ4P4AUOD+GFDg /rlQ4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+71Dg /ldQ4P4AUOD+AFDg/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA5LRhAOS0YQDktGEC5LRhXeS0YeDktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRhz+S0YUTktGEA5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUOD+AFDg/gBQ4P4AUOD+PFDg/rZQ4P71UOD+/1Dg /v9Q4P7/UOD+/1Dg/vpQ4P7IUOD+UlDg/gJQ4P4AUOD+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAUOD+AFDg/gBQ4P4AUOD+IlDg/rRQ4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg /v9Q4P7/UOD+/1Dg/udQ4P5fUOD+AVDg/gBQ4P4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS0YQDktGEA5LRhAOS0YWXktGHy5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh4+S0YUfktGEA5LRhAOS0YQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUOD+AFDg /gBQ4P4AUOD+DFDg/kVQ4P6CUOD+o1Dg/qZQ4P6KUOD+UlDg/hRQ4P4AUOD+AFDg/gAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUOD+AFDg/gBQ4P4AUOD+FFDg/oBQ4P7iUOD+/1Dg /v9Q4P7/UOD+/1Dg/v9Q4P7/UOD+/1Dg/vdQ4P61UOD+PFDg/gBQ4P4AUOD+AAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQDktGFB5LRh6uS0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh1eS0 YSbktGEA5LRhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAUOD+AFDg/gBQ4P4AUOD+AFDg/gBQ4P4BUOD+AVDg/gBQ4P4AUOD+AFDg /gBQ4P4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUOD+AFDg /gBQ4P4AUOD+AFDg/ilQ4P51UOD+tFDg/tRQ4P7eUOD+21Dg/sZQ4P6VUOD+S1Dg/gxQ4P4AUOD+AFDg /gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS0 YQDktGEA5LRhDuS0YbrktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRhl+S0YQPktGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFDg/gBQ4P4AUOD+AFDg /gBQ4P4AUOD+AFDg/gBQ4P4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFDg/gBQ4P4AUOD+AFDg/gBQ4P4GUOD+FVDg/h1Q4P4aUOD+DVDg /gBQ4P4AUOD+AFDg/gBQ4P4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQDktGFP5LRh+OS0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGHp5LRhL+S0YQDktGEAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQ4P4AUOD+AFDg /gBQ4P4AUOD+AFDg/gBQ4P4AUOD+AFDg/gBQ4P4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADktGEA5LRhAOS0YZnktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGFx5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS0 YQDktGEO5LRhyOS0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0YaXktGEC5LRhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YRzktGHd5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRhvuS0YQnktGEAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADktGEA5LRhHuS0YeDktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGHD5LRhC+S0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS0 YQDktGEW5LRh1eS0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0YbTktGEF5LRhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQbktGG05LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRhjeS0YQDktGEAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADktGEA5LRhAOS0YXXktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 YfnktGFP5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOS0 YQDktGEA5LRhKOS0YeHktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRhxuS0YRPktGEA5LRhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQDktGEA5LRhfeS0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0YffktGFZ5LRhAOS0YQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQDktGES5LRhsOS0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRhkOS0 YQbktGEA5LRhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA5LRhAOS0YQDktGEf5LRhs+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0 Yf/ktGH/5LRh/OS0YZnktGEQ5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADktGEA5LRhAOS0YQDktGEV5LRhiOS0YerktGH/5LRh/+S0 Yf/ktGH/5LRh/+S0Yf/ktGH/5LRh/+S0Yd7ktGFv5LRhCuS0YQDktGEA5LRhAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADktGEA5LRhAOS0 YQDktGEB5LRhNOS0YYrktGHJ5LRh5uS0YfHktGHw5LRh4+S0YcDktGF75LRhJ+S0YQDktGEA5LRhAOS0 YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADktGEA5LRhAOS0YQDktGEA5LRhAOS0YQ/ktGEm5LRhNuS0YTTktGEi5LRhC+S0 YQDktGEA5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5LRhAOS0YQDktGEA5LRhAOS0 YQDktGEA5LRhAOS0YQDktGEA5LRhAOS0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////////+P// //////////////////j////////////////////4////////////////////+P////////4AH/////// //j////////4AAf////////4////////8AAD////////+P///////+AAAf////////j////////AAAH/ ///////4////////wAAA////////+P///////4AAAP////////j///////+AAAB////////4//////// gAAAf///////+P///////4AAAH////////j///////+AAAB////////4////////gAAAf///////+P// /////4AAAH////////j///////+AAAB////////4///4AP//gAAAf//AB///+P//4AA//4AAAH//AAH/ //j//8AAD/+AAAD//AAA///4//+AAA//wAAA//gAAH//+P//AAAH/8AAAP/4AAB///j//wAAA//gAAH/ 8AAAP//4//4AAAP/8AAD//AAAD//+P/+AAAD//gAB//gAAAf//j//gAAAf/+AB//4AAAH//4//4AAAH/ /4D//+AAAB//+P/+AAAB//+A///gAAAf//j//gAAAf//gP//4AAAH//4//4AAAH//4D//+AAAB//+P/+ AAAB//+A///gAAAf//j//gAAAf//gP//4AAAH//4//4AAAH//4D//+AAAB//+P/+AAAD//+A///wAAAf //j//wAAAf//gP//4AAAP//4//8AAAD//4D//8AAAD//+P//gAAAf/+A//+AAAB///j//4AAAD//gP// AAAA///4///gAAAf/4D//gAAAf//+P//8AAAD/+A//wAAAP///j///4BAAf+AD/4ACAf///4/////4AD 4AAD8AB/////+P/////AAYAAAOAA//////j/////4AAAAAAAAf/////4//////AAAAAAAAP/////+P// ///4AAAAAAAH//////j//////AAAAAAAD//////4//////4AAAAAAB//////+P//////AAAAAAA///// //j//////4AAAAAAf//////4//////+AAAAAAH//////+P//////AAAAAAB///8AP/j//////wAAAAAA P//8AAf4//////8AAAAAAD//+AAD+P8Af//+AAAAAAAf//AAAfj+AB///gAAAAAAH//gAAD4+AAP//4A AAAAAB//wAAA+PgAD//8AAAAAAAf/8AAAHjwAAf//AAAAAAAH//AAAB48AAAAAAAAAAAAAAAAAAAePAA AAAAAAAAAAAAAAAAAHjwAAAAAAAAAAAAAAAAAAB48AAAAAAAAAAAAAAAAAAAePAAAAAAAAAAAAAAAAAA AHjwAAAAAAAAAAAAAAAAAAB48AAAAAAAAAAAAAAAAAAAePAAAAAAAAAAAAAAAAAAAHjwAAf//AAAAAAA H//AAAB4+AAP//wAAAAAAB//wAAA+PwAD//+AAAAAAAf/8AAAPj+AD///gAAAAAAH//gAAH4/4D///4A AAAAAB//8AAB+P//////AAAAAAA///gAA/j//////wAAAAAAP//8AA/4//////+AAAAAAH///4A/+P// ////gAAAAAB///////j//////4AAAAAAf//////4//////8AAAAAAD//////+P/////+AAAAAAAf//// //j//////AAAAAAAD//////4//////gAAAAAAAf/////+P/////wAAAAAAAD//////j/////4AAAAAAA Af/////4/////8ABwAAA4AD/////+P////+AA/AAA/AAf/////j///wBAAf/gH/4AD/////4///wAAAP /4D//AAf////+P//wAAAH/+A//4ACD////j//4AAAD//gP//AAAH///4//8AAAB//4D//4AAA///+P// AAAA//+A///AAAH///j//wAAAf//gP//4AAA///4//4AAAP//4D///AAAP//+P/+AAAB//+A///4AAB/ //j//gAAAf//gP///AAAf//4//4AAAH//4D///gAAH//+P/+AAAB//+A///4AAB///j//gAAAf//gP// +AAAf//4//4AAAH//4D///gAAH//+P/+AAAB//+Af//8AAB///j//gAAAf/8AA///AAAf//4//4AAAP/ +AAH//wAAP//+P/+AAAD//AAA//8AAD///j//wAAA//gAAH//gAB///4//8AAAf/wAAA//8AA///+P// gAAP/8AAAP//gAf///j//8AAH/+AAAD//+Af///4///wAD//gAAAf///////+P///AD//4AAAH////// //j///////+AAAB////////4////////gAAAf///////+P///////4AAAH////////j///////+AAAB/ ///////4////////gAAAf///////+P///////4AAAH////////j///////+AAAB////////4//////// gAAA////////+P///////8AAAP////////j////////gAAH////////4////////4AAB////////+P// //////AAA/////////j////////4AA/////////4/////////gA/////////+P////////////////// //j////////////////////4////////////////////+P////////////////////g= ================================================ FILE: FreeHttpControl/ShowSheetForm.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class ShowSheetForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ShowSheetForm)); this.listView = new System.Windows.Forms.ListView(); this.SuspendLayout(); // // listView // this.listView.Dock = System.Windows.Forms.DockStyle.Fill; this.listView.FullRowSelect = true; this.listView.GridLines = true; this.listView.Location = new System.Drawing.Point(0, 0); this.listView.Name = "listView"; this.listView.Size = new System.Drawing.Size(846, 422); this.listView.TabIndex = 0; this.listView.UseCompatibleStateImageBehavior = false; this.listView.View = System.Windows.Forms.View.Details; // // ShowSheetForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(846, 422); this.Controls.Add(this.listView); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MinimizeBox = false; this.Name = "ShowSheetForm"; this.Text = "ShowSheetForm"; this.Load += new System.EventHandler(this.ShowSheetForm_Load); this.ResumeLayout(false); } #endregion private System.Windows.Forms.ListView listView; } } ================================================ FILE: FreeHttpControl/ShowSheetForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class ShowSheetForm : Form { public ShowSheetForm() { InitializeComponent(); } private List> listViewSource; public ShowSheetForm(string name, List> dataSource) : this() { this.Text = string.IsNullOrEmpty(name) ? "" : name; if (dataSource != null) { listViewSource = dataSource; } } private void ShowSheetForm_Load(object sender, EventArgs e) { int columnCount = 0; if (listViewSource != null) { foreach(List tempRowItem in listViewSource) { if(tempRowItem!=null && tempRowItem.Count>0) { if(tempRowItem.Count>columnCount) { for(int i = columnCount;i text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wBLexAiS3sQmUt7EO5LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP// /wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fu5lpxaZZacWIv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AS3sQM0t7EO5LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxbuZacWM////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7 ECJLexDuS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP// /wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxbuZacWIv///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AS3sQmUt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxaZ////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wBLexDuS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP// /wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFu7///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW//// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP// /wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AEt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP// /wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP////8A////AP// /wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP// /wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP///wD///8A////AGWn Frtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ//// /wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP// /wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/SHUP/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP// /wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/SHUP/0t7 EP9LexD/SHUP/0t7EP9IdQ//S3sQ/0t7EP9IdQ//S3sQ/0t7EP9IdQ//S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/SHUP/0t7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0t7 EP9IdQ//S3sQ/0t7EP9LexD/S3sQ/0h1D/9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP// /wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0h1D/9LexD/SHUP/0t7 EP9LexD/SHUP/0t7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0t7EP9IdQ//S3sQ/0h1D/9LexD/S3sQ/0h1 D/9LexD/S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW//// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8AS3sQ/0h1D/9LexD/S3sQ/0t7EP9LexD/SHUP/0t7EP9IdQ//SHUP/0t7EP9IdQ//S3sQ/0h1 D/9LexD/SHUP/0t7EP9LexD/S3sQ/0h1D/9LexD/S3sQ/0h1D/9LexD/////AP///wD///8A////AP// /wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0h1D/9LexD/S3sQ/0h1 D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9IdQ//S3sQ/0h1D/9LexD/S3sQ/0h1 D/9LexD/S3sQ/0h1D/////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AEt7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0h1D/9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//S3sQ/0h1D/9LexD/S3sQ/0h1D/9LexD/S3sQ/////wD///8A////AP// /wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0h1D/9LexD/SHUP/0t7 EP9IdQ//SHUP/0t7EP9IdQ//S3sQ/0h1D/9LexD/SHUP/0t7EP9IdQ//S3sQ/0h1D/9IdQ//S3sQ/0h1 D/9LexD/S3sQ/0h1D/9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wBLexD/S3sQ/0h1D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//S3sQ/0t7EP////8A////AP// /wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9IdQ//S3sQ/0h1 D/9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//S3sQ/0h1 D/9IdQ//SHUP/0t7EP9LexD/SHUP/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8AS3sQ/0t7EP9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//SHUP/0t7EP9LexD/////AP// /wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/SHUP/0t7 EP9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0t7EP9IdQ//S3sQ/0h1D/////8A////AP///wD///8A////AP///wD///8A////AGWn Frtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AEh1D/9LexD/SHUP/0t7EP9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//S3sQ//// /wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0h1 D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0t7EP9IdQ//SHUP/0h1D/9LexD/////AP///wD///8A////AP///wD///8A////AP// /wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wBIdQ//S3sQ/0h1D/9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//S3sQ/0h1 D/////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7 EP9IdQ//S3sQ/0h1D/9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//S3sQ/////wD///8A////AP///wD///8A////AP// /wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8ASHUP/0t7EP9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//SHUP/0t7 EP9IdQ//////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wBLexD/SHUP/0h1D/9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//SHUP/0t7EP////8A////AP///wD///8A////AP// /wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1 D/9IdQ//S3sQ/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7 EP9IdQ//S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW//// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8AS3sQ/0h1D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0t7EP9IdQ//SHUP/0t7EP9LexD/////AP///wD///8A////AP// /wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0h1D/9LexD/SHUP/0h1 D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//SHUP/0h1D/9LexD/SHUP/0h1 D/9LexD/SHUP/0t7EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AEt7EP9LexD/S3sQ/0h1D/9IdQ//SHUP/0t7EP9IdQ//SHUP/0t7EP9IdQ//SHUP/0h1 D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9LexD/SHUP/0t7EP9IdQ//S3sQ/////wD///8A////AP// /wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0h1D/9LexD/S3sQ/0h1 D/9IdQ//SHUP/0h1D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9IdQ//SHUP/0h1D/9LexD/SHUP/0h1 D/9LexD/SHUP/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wBLexD/S3sQ/0h1D/9LexD/SHUP/0t7EP9IdQ//SHUP/0h1D/9LexD/SHUP/0h1 D/9LexD/SHUP/0h1D/9LexD/SHUP/0h1D/9IdQ//S3sQ/0h1D/9LexD/S3sQ/0h1D/////8A////AP// /wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0h1D/9LexD/SHUP/0h1D/9IdQ//SHUP/0h1D/9IdQ//S3sQ/0h1D/9LexD/SHUP/0t7 EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8AS3sQ/0h1D/9LexD/S3sQ/0t7EP9IdQ//S3sQ/0h1D/9LexD/SHUP/0t7 EP9IdQ//SHUP/0t7EP9IdQ//S3sQ/0h1D/9LexD/SHUP/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP// /wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7 EP9IdQ//S3sQ/0t7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0h1D/9LexD/SHUP/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0t7EP////8A////AP///wD///8A////AP///wD///8A////AGWn Frtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0t7EP9IdQ//S3sQ/0t7 EP9LexD/S3sQ/0h1D/9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9IdQ//S3sQ/0t7EP9LexD/S3sQ//// /wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/SHUP/0t7EP9LexD/SHUP/0t7EP9LexD/S3sQ/0h1D/9LexD/SHUP/0t7 EP9IdQ//S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP// /wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0h1D/9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP// /wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP// /wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW//// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP// /wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AEt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP// /wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP////8A////AP// /wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP///wD///8AZacWu2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP// /wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP////8A////AP///wD///8A////AP///wD///8A////AGWn Frtlpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AEt7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ//// /wD///8A////AP///wD///8A////AP///wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/////AP///wD///8A////AP///wD///8A////AP// /wBlpxa7ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wBLexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP////8A////AP///wD///8A////AP///wD///8A////AGWnFrtlpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv////8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AEt7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/////wD///8A////AP///wD///8A////AP// /wD///8AZacWu2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/////wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AS3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7EP9LexD/S3sQ/0t7 EP9LexD/////AP///wD///8A////AP///wD///8A////AP///wBlpxa7ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2Wn Fv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/ZacW/2WnFv9lpxb/////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8AGioGuxoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAaKga7GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////ABoqBrsaKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/////wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AGioGuxoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wAaKga7GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv////8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ABoq BrsaKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/////wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AGioGuxoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wAaKga7GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv////8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////ABoqBrsaKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG//// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8AGioGuxoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wAaKga7GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv////8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////ABoqBpkaKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG7v///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AGioGRBoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgaZ////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8AGioGuxoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG7hoqBiL///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAaKgYRGioGzBoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bu4aKgYz////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8AGioGiBoqBt0aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBv8aKgb/GioG/xoq Bv8aKgb/GioG/xoqBv8aKgb/GioG/xoqBu4aKgaZGioGIv///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A//////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////AAAD/AAAAAAAAAAP///// gAAA/wAAAAAAAAAB/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA /////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAA AAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/ AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD///// AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA /////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAA AAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/ AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD///// AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA /////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAA AAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/ AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD///// AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA /////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAA AAAAAP////8AAAD/AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/ AAAAAAAAAAD/////AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD///// AAAA/wAAAAAAAAAA/////wAAAP8AAAAAAAAAAP////8AAAD/AAAAAAAAAAD///////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////8AAAAA AAAAAAAAAAD/////AAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAD///// AAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAA /////wAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAA/////wAAAAAAAAAA AAAAAP////8AAAAAAAAAAAAAAAD/////gAAAAAAAAAAAAAAA/////4AAAAAAAAAAAAAAAf/////gAAAA AAAAAAAAAAP///////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////8= ================================================ FILE: FreeHttpControl/ShowTextForm.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class ShowTextForm { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ShowTextForm)); this.rtb_textInfo = new System.Windows.Forms.RichTextBox(); this.SuspendLayout(); // // rtb_textInfo // this.rtb_textInfo.BackColor = System.Drawing.SystemColors.InactiveBorder; this.rtb_textInfo.DetectUrls = false; this.rtb_textInfo.Dock = System.Windows.Forms.DockStyle.Fill; this.rtb_textInfo.Location = new System.Drawing.Point(0, 0); this.rtb_textInfo.Name = "rtb_textInfo"; this.rtb_textInfo.ReadOnly = true; this.rtb_textInfo.Size = new System.Drawing.Size(878, 437); this.rtb_textInfo.TabIndex = 0; this.rtb_textInfo.Text = ""; // // ShowTextForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(878, 437); this.Controls.Add(this.rtb_textInfo); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MinimizeBox = false; this.Name = "ShowTextForm"; this.Text = "ShowTextForm"; this.Load += new System.EventHandler(this.ShowTextForm_Load); this.ResumeLayout(false); } #endregion private System.Windows.Forms.RichTextBox rtb_textInfo; } } ================================================ FILE: FreeHttpControl/ShowTextForm.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class ShowTextForm : Form { public ShowTextForm() { InitializeComponent(); } public ShowTextForm(string name,string textInfo):this() { this.Text = string.IsNullOrEmpty(name) ? "" : name; if (textInfo!=null){ rtb_textInfo.AppendText(textInfo); } } private void ShowTextForm_Load(object sender, EventArgs e) { } } } ================================================ FILE: FreeHttpControl/ShowTextForm.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAHQSAAB0EgAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+ sADFvrAAxb6wAMW+sADFvrAFxb6wHcW+sE7FvrB3xb6wl8W+sMzFvrD6xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sPTFvrDBxb6wj8W+sHPFvrBExb6wFcW+sAPFvrAAxb6wAMW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sBfFvrA9xb6wb8W+sLbFvrDQxb6w7MW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sObFvrDMxb6wqcW+ sGLFvrA2xb6wEMW+sADFvrAAxb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAAxb6wFcW+ sEbFvrCQxb6wwsW+sPTFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/sW+sO/FvrC4xb6wh8W+sDjFvrAQxb6wAMW+ sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+ sADFvrAAxb6wAMW+sADFvrAGxb6wNcW+sHzFvrDIxb6w8MW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w7cW+sL7FvrBsxb6wKMW+sALFvrAAxb6wAMW+sADFvrAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+sADFvrAUxb6wUMW+sKnFvrDjxb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP7FvrDcxb6wm8W+sD/FvrALxb6wAMW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+ sADFvrAVxb6wYcW+sL7FvrD6xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w78W+sKnFvrBNxb6wDcW+ sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAQxb6wX8W+sMPFvrD4xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sPHFvrCuxb6wScW+sAjFvrAAxb6wAMW+sAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAJxb6wTcW+ sL3FvrD4xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w+8W+sOXFvrDWxb6wzcW+sMnFvrDGxb6wxcW+ sMXFvrDFxb6wxcW+sMbFvrDHxb6wycW+sM/FvrDZxb6w6cW+sP3FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrDuxb6wo8W+sDvFvrADxb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAxb6wAMW+sADFvrAAxb6wLsW+sJzFvrDxxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w8MW+sOTFvrC4xb6wiMW+ sHDFvrBcxb6wOcW+sCHFvrATxb6wC8W+sAfFvrAFxb6wBcW+sAXFvrAFxb6wBsW+sAfFvrAMxb6wFcW+ sCXFvrBAxb6wYcW+sHPFvrCPxb6wxMW+sOnFvrDyxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w6cW+sIXFvrAfxb6wAMW+ sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAAxb6wD8W+sGvFvrDfxb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP3FvrDdxb6wrcW+sILFvrBBxb6wH8W+sA/FvrACxb6wAMW+sADFvrAAxb6wAMW+sADFvrAAxb6wAMW+ sADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sATFvrATxb6wJMW+ sEzFvrCNxb6wtMW+sOfFvrD+xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/sW+sMjFvrBYxb6wBsW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+ sADFvrAAxb6wAMW+sDHFvrCwxb6w+MW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/MW+sNnFvrCixb6wVsW+sCvFvrAIxb6wAMW+sADFvrAAxb6wAMW+ sADFvrAAxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAxb6wAMW+sADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sADFvrANxb6wMsW+sGLFvrCzxb6w4MW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sPTFvrCRxb6wI8W+sADFvrAAxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+sAjFvrBoxb6w2sW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w8cW+sLPFvrBnxb6wJMW+ sAPFvrAAxb6wAMW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sAfFvrAvxb6wdMW+sMfFvrD0xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDNxb6wR8W+sAHFvrAAxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+ sADFvrAYxb6wjMW+sPbFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w48W+sJ3FvrBCxb6wDsW+sADFvrAAxb6wAMW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAAxb6wAMW+ sADFvrAAxb6wFsW+sFHFvrCpxb6w7sW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrDlxb6weMW+sA3FvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAAxb6wMsW+sLrFvrD8xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w4cW+sI7FvrAzxb6wBMW+sADFvrAAxb6wAMW+ sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sArFvrBCxb6wocW+ sOvFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD8xb6wnMW+ sB3FvrAAxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+ sEXFvrDVxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w78W+ sJjFvrAzxb6wAsW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+sADFvrAGxb6wQ8W+sKvFvrD0xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6wtcW+sC7FvrAAxb6wAMW+sAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sALFvrBXxb6w3sW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w+cW+sLbFvrBGxb6wB8W+sADFvrAAxb6wAMW+sAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+ sADFvrAAxb6wDsW+sFzFvrDIxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6wz8W+sETFvrAAxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAGxb6wacW+ sOfFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sN/FvrBvxb6wEcW+ sADFvrAAxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAAxb6wAMW+sB7FvrCFxb6w6cW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w5MW+sFDFvrAAxb6wAMW+ sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAMW+sADFvrAAxb6wBcW+sHPFvrDxxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sPvFvrCvxb6wMMW+sADFvrAAxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+sAPFvrBHxb6wwsW+sP7FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w58W+sFPFvrAAxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sATFvrBzxb6w8cW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDoxb6wdcW+sBHFvrAAxb6wAMW+ sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+ sADFvrAcxb6wk8W+sPjFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w5sW+ sFPFvrAAxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAxb6wAMW+sADFvrAExb6wbMW+sO/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w1sW+sE3FvrACxb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAKxb6wZ8W+sN3FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w58W+sFDFvrAAxb6wAMW+sAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+sFzFvrDrxb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/sW+sK/FvrArxb6wAMW+sADFvrAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAxb6wAMW+sADFvrAAxb6wP8W+sM7FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w5MW+sETFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADFvrAAxb6wAMW+sADFvrBHxb6w4MW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP3FvrCaxb6wGcW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSpAwD0qQMA9KkDAPSpAwD0qQMA9KkDAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAAxb6wLsW+ sMHFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6wz8W+sC7FvrAAxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wN8W+sNXFvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD6xb6wjMW+sBDFvrAAxb6wAMW+sAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0qQMA9KkDAPSpAwD0qQMA9KkDAPSp AwD0qQMA9KkDAPSpAwD0qQMA9KkDAPSpAwD0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMA9KkDMvSpA9v0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA7X0qQMa9KkDAPSpAwAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAAxb6wIMW+ sMHFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDNxb6wI8W+sADFvrAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+ sADFvrAAxb6wGMW+sLrFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrCrxb6wF8W+ sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA9KkDAPSpAwn0qQOk9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA4L0qQMC9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAAxb6wLsW+sM7FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrCRxb6wBsW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sAHFvrB5xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6wy8W+sCjFvrAAxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMA9KkDRfSpA+30qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD4PSpAyb0qQMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+ sADFvrAAxb6wP8W+sN3FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sPTFvrBYxb6wAMW+ sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+ sADFvrAAxb6wO8W+sOTFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sOTFvrBFxb6wAMW+ sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA9KkDAPSpAwD0qQOI9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP69KkDVPSpAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAAxb6wZ8W+sPjFvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sMjFvrAfxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sA3FvrCqxb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD3xb6wasW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0qQMA9KkDB/SpA570qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQOH9KkDAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAxb6wAMW+sADFvrAKxb6wk8W+sP7FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/sW+ sIXFvrADxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+ sADFvrAAxb6wW8W+sPbFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sKTFvrAMxb6wAMW+ sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAPSpAwD0qQMP9KkDsfSpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA6v0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAcxb6wwsW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w6cW+sDvFvrAAxb6wAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sBvFvrDGxb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrDRxb6wKMW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSpAxH0qQO19KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkDsvSp AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrBHxb6w6cW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6wo8W+sAjFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+ sADFvrAAxb6wccW+sPzFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w9cW+sGHFvrAAxb6wAMW+ sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAD0qQMA9KkDEfSpA7T0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQOx9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+ sAPFvrCFxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDuxb6wScW+sADFvrAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sCDFvrDRxb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrCmxb6wCsW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMR9KkDtPSp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A7H0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sB7FvrDIxb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrCuxb6wDcW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+ sADFvrAAxb6wdMW+sP7FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w48W+sDfFvrAAxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSpAxH0qQO09KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkDsfSpAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+ sADFvrAAxb6wAMW+sFzFvrD0xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sPHFvrBNxb6wAMW+ sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sBvFvrDPxb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrCKxb6wAsW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0qQMA9KkDEfSp A7T0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQOx9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wDsW+sKvFvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sKnFvrALxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+ sADFvrAAxb6wZ8W+sPnFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w3MW+sCfFvrAAxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMR9KkDtPSpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA7H0qQMAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAMW+sADFvrAAxb6wQ8W+sOvFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w78W+ sD/FvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sBLFvrC5xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrB+xb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSp AxH0qQO09KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkDsfSpAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAGxb6wocW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6wm8W+sALFvrAAAAAAAAAAAAAAAAAAAAAAAMW+ sADFvrAAxb6wR8W+sPXFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w2sW+sCXFvrAAxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0qQMA9KkDEfSpA7T0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQOx9KkDAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrBCxb6w7sW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrDcxb6wKMW+sADFvrAAAAAAAAAAAADFvrAAxb6wAMW+sAPFvrCbxb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrCDxb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSp AwD0qQMR9KkDtPSpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA7H0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+ sArFvrCpxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP7FvrBsxb6wAMW+sAAAAAAAAAAAAMW+ sADFvrAAxb6wI8W+sNfFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w4sW+sDDFvrAAxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSpAxH0qQO09KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkDsfSpAwAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sFHFvrD0xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sL7FvrAQxb6wAAAAAAAAAAAAxb6wAMW+sADFvrBlxb6w/sW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrCgxb6wBcW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAD0qQMA9KkDEfSpA7T0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQOx9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+ sADFvrAAxb6wFsW+sMfFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w7cW+sDjFvrAAxb6wAAAA AADFvrAAxb6wCcW+sKPFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w9MW+sE3FvrAAxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMR9KkDtPSpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA7H0qQMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wdMW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6wh8W+sADFvrAAAAAAAMW+sADFvrAixb6w5cW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrDJxb6wFsW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA9KkDAPSpAxH0qQO09KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkDsfSpAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAxb6wAMW+sADFvrAvxb6w4MW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrC4xb6wEMW+ sADFvrAAxb6wAMW+sFrFvrD1xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sILFvrAAxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0qQMA9KkDEfSpA7T0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQOx9KkDAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sAfFvrCzxb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sO/FvrA2xb6wAMW+sADFvrAAxb6wmMW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrDsxb6wRcW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAPSpAwD0qQMR9KkDtPSpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA7H0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sGLFvrD+xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/sW+ sGLFvrAAxb6wAMW+sBXFvrDAxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sMzFvrARxb6wAMW+ sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSpAxH0qQO09KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkDsfSp AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wMsW+ sOfFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6wqcW+sAPFvrAAxb6wN8W+sPHFvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6wlMW+sALFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAD0qQMA9KkDEfSpA7T0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQOx9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrANxb6wtMW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrDMxb6wFcW+sADFvrBVxb6w/cW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP7FvrBTxb6wAMW+ sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMR9KkDtPSp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A7H0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+ sADFvrCNxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sObFvrBExb6wAcW+sI3FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w6MW+sDLFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSpAxH0qQO09KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkDsfSpAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sEzFvrDyxb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sHPFvrAHxb6wv8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrC6xb6wEcW+ sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0qQMA9KkDEfSp A7T0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQOx9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADFvrAAxb6wJMW+sOnFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6wj8W+sBjFvrDNxb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sJ/FvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMR9KkDtPSpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA7H0qQMAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrATxb6wxMW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrDBxb6wOcW+sODFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD9xb6we8W+ sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSp AxH0qQO09KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkDsfSpAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAxb6wAMW+sATFvrCPxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sPTFvrBhxb6w98W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sPHFvrBIxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0qQMA9KkDEfSpA7T0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQOx9KkDAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sHPFvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sHfFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w6sW+ sCrFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSp AwD0qQMR9KkDtPSpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA7H0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAMW+sADFvrAAxb6wYcW+sP3FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6whMW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDnxb6wHsW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSpAxH0qQO09KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkDsfSpAwAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrBAxb6w6cW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrCYxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sM7FvrAVxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAD0qQMA9KkDEfSpA7T0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQOx9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sCXFvrDZxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sLHFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6wrMW+sAzFvrAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMR9KkDtPSpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA7H0qQMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wFcW+ sM/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6wyMW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrCWxb6wBsW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA9KkDAPSpAxH0qQO09KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkDsfSpAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAMxb6wycW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrDdxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sIfFvrACxb6wAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0qQMA9KkDEfSpA7T0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQOx9KkDAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+ sAfFvrDHxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sO7FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6wf8W+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAPSpAwD0qQMR9KkDtPSpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA7H0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wBsW+sMbFvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w+MW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrB6xb6wAMW+sAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSpAxH0qQO09KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkDsfSp AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+ sADFvrAFxb6wxcW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD9xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sHnFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAD0qQMA9KkDEfSpA7T0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQOx9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sAXFvrDFxb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sPrFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6wesW+sADFvrAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMR9KkDtPSp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A7H0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADFvrAAxb6wBcW+sMXFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w8cW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrB+xb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSpAxH0qQO09KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkDsfSpAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAFxb6wxcW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrDhxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sIXFvrACxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0qQMA9KkDEfSp A7T0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQOx9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAxb6wAMW+sAfFvrDGxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sMzFvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6wk8W+sAXFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMR9KkDtPSpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA7H0qQMAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wC8W+sMnFvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6wtcW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrCnxb6wC8W+ sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSp AxH0qQO09KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkDsfSpAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAMW+sADFvrATxb6wzcW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrCdxb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sMbFvrATxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0qQMA9KkDEfSpA7T0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQOx9KkDAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sCHFvrDWxb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sIjFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w48W+ sBzFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSp AwD0qQMR9KkDtfSpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA7L0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAMW+sADFvrAAxb6wOcW+sOXFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6wecW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDqxb6wJsW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSpAxD0qQOy9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkDrPSpAwAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrBcxb6w+8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrBpxb6w/MW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sO/FvrBAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAD0qQMA9KkDCfSpA6L0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQOO9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sHDFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sEDFvrDkxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w+sW+sHDFvrAAxb6wAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMA9KkDivSpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD+vSpA1z0qQMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrACxb6wiMW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD6xb6wHcW+sNDFvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6wnMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA9KkDAPSpAwD0qQNR9KkD8/SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQPn9KkDK/SpAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sA/FvrC4xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sMzFvrAJxb6wxMW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrCyxb6wDMW+sADFvrAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0qQMA9KkDAPSpAxH0qQO99KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA5D0qQMG9KkDAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wH8W+ sOTFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6wl8W+sALFvrCbxb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sN/FvrArxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAD0qQMA9KkDAPSpAz70qQPf9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQPS9KkDJ/SpAwD0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrBBxb6w8MW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrB3xb6wAMW+sF3FvrD9xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/MW+sEvFvrAAxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMA9KkDAPSp A1v0qQPg9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD2fSpAz/0qQMA9KkDAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+ sILFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w7MW+sE7FvrAAxb6wPMW+sPXFvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6whcW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMA9KkDAfSpA0P0qQO49KkD9/SpA//0qQP/9KkD//Sp A//0qQP/9KkD7/SpA6P0qQMx9KkDAPSpAwD0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAIxb6wrcW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrDQxb6wHcW+sADFvrAcxb6wysW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDFxb6wDMW+ sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSp AwD0qQMA9KkDAPSpAxH0qQNP9KkDh/SpA7b0qQPL9KkDrvSpA3r0qQND9KkDCfSpAwD0qQMA9KkDAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+ sCvFvrDdxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sLbFvrAFxb6wAMW+sALFvrCgxb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sOXFvrA4xb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMA9KkDAPSpAwD0qQMC9KkDCvSp Aw70qQMJ9KkDAPSpAwD0qQMA9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wVsW+sP3FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6wb8W+sADFvrAAxb6wAMW+sGjFvrD5xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sHTFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAD0qQMA9KkDAPSpAwD0qQMA9KkDAPSpAwD0qQMA9KkDAPSpAwAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+ sAPFvrCixb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sPTFvrA9xb6wAMW+sADFvrAAxb6wKcW+ sObFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6wvMW+sBHFvrAAxb6wAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wJMW+sNnFvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6wwsW+sBfFvrAAAAAAAMW+sADFvrANxb6wssW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrDuxb6wPcW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+ sADFvrBnxb6w/MW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrCQxb6wAMW+sAAAAAAAxb6wAMW+ sADFvrBtxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrCVxb6wAcW+sADFvrAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wDsW+sLPFvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w8MW+sEbFvrAAxb6wAAAAAADFvrAAxb6wAMW+sC7FvrDfxb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sNfFvrAmxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMA9KkDAPSpAwD0qQMA9KkDAPSpAwD0qQMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+ sADFvrBCxb6w8cW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDIxb6wFcW+sAAAAAAAAAAAAAAA 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 sADFvrABxb6whMW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w68W+sEbFvrAAxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAD0qQMA9KkDAPSpA4H0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA/n0qQNP9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+ sADFvrBvxb6w+cW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD4xb6wX8W+sADFvrAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAmxb6w1cW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6wxsW+sBzFvrAAxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMG9KkDnfSp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A4T0qQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wMMW+sN/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sL3FvrAQxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAxb6wAMW+sADFvrB0xb6w+8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD9xb6whcW+ sATFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA9KkDAPSpAw30qQOs9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp A//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkDovSpAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+ sBHFvrCvxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDxxb6wTcW+sADFvrAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sBfFvrDDxb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDxxb6wVcW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0qQMA9KkDCfSp A6P0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//SpA//0qQP/9KkD//Sp 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+sAvFvrCIxb6w/MW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sLrFvrAYxb6wAMW+sAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrBOxb6w68W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sOjFvrBkxb6wBcW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSpAwD0qQMA9KkDAPSpAwD0qQME9KkDDvSpAxL0qQMM9KkDAvSp AwD0qQMA9KkDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAxb6wAMW+sADFvrANxb6wi8W+sPzFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrDVxb6wMsW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+ sALFvrBsxb6w9cW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sO3FvrB3xb6wC8W+ sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAD0qQMA9KkDAPSpAwD0qQMA9KkDAPSpAwD0qQMA9KkDAPSpAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAAxb6wF8W+sJXFvrD7xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w3sW+sEXFvrAAxb6wAMW+sAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sAXFvrB7xb6w+MW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sPfFvrCZxb6wF8W+sADFvrAAxb6wAMW+sAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+ sADFvrAAxb6wAMW+sCjFvrCrxb6w/sW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sOfFvrBXxb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADFvrAAxb6wAMW+sAvFvrCIxb6w+cW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrCyxb6wK8W+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+sADFvrBFxb6wy8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDxxb6wacW+sALFvrAAxb6wAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sA/FvrCNxb6w+cW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDQxb6wVcW+sATFvrAAxb6wAMW+ sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+ sADFvrAMxb6wasW+sOTFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w8cW+ sHPFvrAGxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sA/FvrCNxb6w+cW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrDxxb6whcW+sBzFvrAAxb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAAxb6wKMW+sKTFvrD3xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sO/FvrBzxb6wBcW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+ sA/FvrCIxb6w+MW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD9xb6wxsW+ sEbFvrAExb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAAxb6wCsW+ sGHFvrDRxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDrxb6wbMW+ sATFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sAvFvrB7xb6w9cW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w68W+sJLFvrAoxb6wAMW+sADFvrAAxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADFvrAAxb6wAMW+sADFvrAAxb6wAsW+sDfFvrCmxb6w9cW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w4MW+sFzFvrAExb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADFvrAAxb6wAMW+sAXFvrBsxb6w68W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sNfFvrBwxb6wGsW+sADFvrAAxb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sCfFvrCKxb6w48W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sNXFvrBHxb6wAMW+ sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sALFvrBOxb6wz8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sPvFvrDHxb6wZsW+ sBfFvrAAxb6wAMW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+ sADFvrAAxb6wAMW+sCXFvrB+xb6w3MW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP7FvrDExb6wN8W+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAuxb6wtcW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD5xb6wyMW+sG3FvrAmxb6wAcW+sADFvrAAxb6wAMW+ sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+sADFvrAAxb6wBcW+sDDFvrCDxb6w2sW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD3xb6wlMW+sB7FvrAAxb6wAMW+ sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+ sADFvrAXxb6whsW+sOzFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/sW+sNfFvrCVxb6wPcW+sBHFvrAAxb6wAMW+sADFvrAAxb6wAMW+sADFvrAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sADFvrAAxb6wFsW+ sE3FvrCgxb6w4sW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w4sW+sG3FvrAKxb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAFxb6wVMW+sM7FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrDuxb6wvMW+ sHTFvrA4xb6wDMW+sADFvrAAxb6wAMW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+ sADFvrAAxb6wAMW+sALFvrARxb6wRcW+sILFvrDJxb6w9MW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sLrFvrA6xb6wAcW+sADFvrAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADFvrAAxb6wAMW+sADFvrAAxb6wI8W+sJbFvrDuxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sOXFvrDFxb6whcW+sEvFvrArxb6wDMW+ sADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sADFvrAAxb6wAMW+ sADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sADFvrAAxb6wEcW+sDLFvrBTxb6wlMW+sMzFvrDsxb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sOTFvrB5xb6wGMW+sADFvrAAxb6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAAxb6wBsW+ sEvFvrDDxb6w+8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/MW+sN/FvrCyxb6wnMW+sHDFvrBAxb6wJsW+sBzFvrATxb6wC8W+ sAXFvrACxb6wAMW+sADFvrAAxb6wAMW+sADFvrACxb6wBsW+sAzFvrAVxb6wHsW+sCrFvrBIxb6we8W+ sJ/FvrC6xb6w6MW+sP7FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sPbFvrCqxb6wO8W+sAHFvrAAxb6wAMW+sAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+sBfFvrB0xb6w1cW+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w+sW+sO/FvrDqxb6w48W+sMbFvrCnxb6wk8W+sIXFvrB+xb6wesW+sHnFvrB6xb6wf8W+ sIfFvrCWxb6wrMW+sM7FvrDnxb6w6sW+sPHFvrD9xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sPzFvrDGxb6wW8W+ sA3FvrAAxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+ sADFvrAAxb6wAMW+sADFvrAmxb6whMW+sNzFvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP7FvrDRxb6wccW+sBvFvrAAxb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrABxb6wLMW+ sITFvrDbxb6w/cW+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sPnFvrDPxb6wdMW+sCDFvrAAxb6wAMW+ sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+sADFvrAAxb6wAsW+sCbFvrB6xb6wy8W+sPvFvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sPXFvrC5xb6wZ8W+sBvFvrAAxb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxb6wAMW+ sADFvrAAxb6wAMW+sADFvrAbxb6wVcW+sKrFvrDfxb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/sW+sNfFvrCbxb6wR8W+sBLFvrAAxb6wAMW+sADFvrAAxb6wAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFvrAAxb6wAMW+sADFvrAAxb6wBcW+ sC7FvrBtxb6wssW+sObFvrD5xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD1xb6w5cW+sKPFvrBlxb6wI8W+ sAPFvrAAxb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+sADFvrANxb6wKcW+sGjFvrCgxb6wysW+ sPXFvrD9xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/cW+ sPHFvrDAxb6wmMW+sFrFvrAixb6wCcW+sADFvrAAxb6wAMW+sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AADFvrAAxb6wAMW+sADFvrAAxb6wAMW+sALFvrAcxb6wPMW+sF3FvrCbxb6wxMW+sNDFvrDkxb6w/MW+ sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+sP/FvrD/xb6w/8W+ sP/FvrD/xb6w98W+sODFvrDNxb6wv8W+sI3FvrBVxb6wN8W+sBXFvrAAxb6wAMW+sADFvrAAxb6wAMW+ sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMW+sADFvrAAxb6wAMW+ sADFvrAAxb6wAMW+sALFvrAJxb6wHcW+sEDFvrBpxb6wecW+sIjFvrCdxb6wtcW+sMzFvrDhxb6w8cW+ sPrFvrD9xb6w+MW+sO7FvrDdxb6wyMW+sLHFvrCYxb6whMW+sHfFvrBhxb6wOcW+sBjFvrAHxb6wAcW+ sADFvrAAxb6wAMW+sADFvrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAA///////gAAAAAAP////////////+AAAAAAAAf////////////AAAAAAA AB///////////+AAAAAAAAAD//////////+AAAAAAAAAAP/////////+AAAAAAAAAAB//////////AAA AAAAAAAAH/////////AAAAAAAAAAAAf////////gAAAAAAAAAAAD////////gAAAAAAAAAAAAP////// /wAAAAA//gAAAAA///////wAAAAP///4AAAAP//////4AAAAP////gAAAB//////8AAAA//////AAAAH /////+AAAB//////+AAAA//////AAAA///////4AAAH/////AAAA////////gAAA/////wAAA/////// /+AAAH////4AAAf////////wAAA////8AAAf/////////AAAH///+AAAf/////////8AAB////AAAP// //gP////AAAP///wAAH////AAf///8AAA///4AAH////gAH////gAAP//8AAB////wAAf///8AAB//+A AA////4AAD////gAAf//gAA////+AAA////8AAD//wAAP////gAAP////gAAf/4AAH////wAAD////8A AH/+AAH////8AAA/////gAA//AAB/////AAAP////8AAP/wAA/////wAAD/////AAB/4AAP////8AAA/ ////8AAP8AAH/////AAAP/////AAD/AAD/////wAAD/////4AAfwAB/////8AAA/////+AAH4AAf//// /AAAP/////wAB+AAP/////wAAD/////+AAPgAH/////8AAA//////gADwAB//////AAAP/////8AAYAA f/////wAAD//////AAGAAP/////8AAA//////4ABgAD//////AAAP/////+AAIAB//////wAAD////// wACAA//////8AAA//////8AAAAP//////AAAP//////AAAAD//////wAAD//////4AAAA//////8AAA/ /////+AAAAf//////AAAP//////gAAAH//////wAAD//////8AAAB//////8AAA///////AAAAf///// /AAAP//////4AAAP//////wAAD//////+AAAD//////8AAA///////gAAA///////AAAP//////4AAAf //////wAAD//////+AAAH//////8AAA///////gAAB///////AAAP//////8AAAf//////wAAD////// /AAAH//////8AAA///////wAAB///////AAAP//////8AAAf//////wAAD///////AAAH//////8AAA/ //////wAAB///////AAAP//////8AAAf//////wAAD///////AAAH//////8AAA///////wAAB////// /AAAP//////8AAAf//////wAAD///////AAAH//////8AAA///////wAAB///////AAAP//////8AAAf //////wAAD//////+AAAH//////8AAA///////gAAB///////AAAP//////4AAAP//////wAAD////// +AAAD//////8AAA///////gAAAf//////AAAP//////4AAAH//////4AAD//////8AAAB//////+AAB/ //////AAAAf//////wAAf//////gAAAD//////+AAP//////4AAAA///////wAP//////+AAAAP///// //AH///////gAAAB////////////////wACAAf///////////////8AAgAD////////////////AAIAA ///////wD///////gAHAAP//////4AP//////wABwAB//////4AA//////8AAeAAf/////8AAH/////+ AAHgAD/////+AAB//////gAD4AAf/////gAAP/////wAB/AAH/////wAAD/////4AAfwAA/////8AAA/ ////+AAH8AAP/////AAAP/////AAD/gAA/////wAAD/////wAA/8AAP////8AAA/////4AAf/AAB//// /AAAP////8AAH/4AAP////wAAD////+AAD/+AAB////8AAA/////gAB//wAAf////AAAP////gAAf/+A AD////4AAD////wAAP//gAAf///+AAB////8AAH//8AAD////wAAf///8AAB///AAAP///+AAP///+AA A///8AAB////wAP////gAAf///AAAP////AH////gAAH///4AAA//////////gAAD////AAAP/////// //wAAB////4AAA/////////4AAA/////AAAD////////4AAAf////4AAAf///////8AAAP/////AAAB/ //////4AAAD/////4AAAD//////4AAAD//////AAAAP/////8AAAB//////4AAAAf////wAAAA////// /AAAAAf///AAAAAf//////8AAAAB//+AAAAAf///////AAAAAAAAAAAAAP///////8AAAAAAAAAAAAH/ ///////wAAAAAAAAAAAH////////+AAAAAAAAAAAD/////////4AAAAAAAAAAD//////////gAAAAAAA AAD//////////8AAAAAAAAAB///////////4AAAAAAAAD////////////wAAAAAAAH/////////////A AAAAAAD/////////////+AAAAAAf//////8= ================================================ FILE: FreeHttpControl/SortRule.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class SortRule { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SortRule)); this.SuspendLayout(); // // SortRule // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(745, 440); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "SortRule"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Sort Rule"; this.Load += new System.EventHandler(this.SortRule_Load); this.ResumeLayout(false); } #endregion } } ================================================ FILE: FreeHttpControl/SortRule.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class SortRule : Form { MyListView _listView; public SortRule(MyListView listView) { _listView = listView; } private void SortRule_Load(object sender, EventArgs e) { this.Controls.Add(_listView); } } } ================================================ FILE: FreeHttpControl/SortRule.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAA AAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wAaPr6HGj6+8Bo+vv8aPr7/Gj6+/xo+ vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+ vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+ vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vpYaPr4A////AP///wD///8A////AP///wAaPr7wBSu//wQq v/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//wQq v/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//wQq v/8EKr//BCq//wQqv/8EKr//BCq//wQqv/8EKr//BCq//xk9vv8aPr4J////AP///wD///8A////AP// /wAaPr7wCDHD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcw w/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcw w/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/wcww/8HMMP/BzDD/xo+vv8aPr4A////AP// /wD///8A////AP///wAaPr7wCzjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4 xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4 xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/wo4xv8KOMb/CjjG/xo+ vv8aPr4A////AP///wD///8A////AP///wAaPr7wD0DK/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5A y/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5A y/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5Ay/8OQMv/DkDL/w5A y/8OQMv/DkDL/xo+vv8aPr4A////AP///wD///8A////AP///wAaPr7wEkjO/xJJz/8SSc//EknP/xJJ z/8SSc//EknP/xJJz/8SSc//EknP/xJJz/8SSc//EknP/xJJz/8SSc//EknP/xJJz/8SSc//EknP/xJJ z/8SSc//EknP/xJJz/8SSc//EknP/xJJz/8SSc//EknP/xJJz/8SSc//EknP/xJJz/8SSc//EknP/xJJ z/8SSc//EknP/xJJz/8SSc//EknP/xo+vv8aPr4A////AP///wD///8A////AP///wAaPr7wF1LT/xdT 1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT 1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT 1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xdT1P8XU9T/F1PU/xo+vv8aPr4A////AP///wD///8A////AP// /wAaPr7wG1vX/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd 2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd 2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xtd2f8bXdn/G13Z/xo+vv8aPr4A////AP// /wD///8A////AP///wAaPr7wIGXc/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn 3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn 3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/yBn3v8gZ97/IGfe/xo+ vv8aPr4A////AP///wD///8A////AP///wAaPr7wI23g/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw 4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw 4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw4v8kcOL/JHDi/yRw 4v8kcOL/JHDi/xo+vv8aPr4A////AP///wD///8A////AP///wAaPr7wJ3Xl/yh45/8oeOf/KHjn/yh4 5/8oeOf/KHjn/yh45/8oeOf/KHjn/yh45/8oeOf/KHjn/yh45/8oeOf/KHjn/yh45/8oeOf/KHjn/yh4 5/8oeOf/KHjn/yh45/8oeOf/KHjn/yh45/8oeOf/KHjn/yh45/8oeOf/KHjn/yh45/8oeOf/KHjn/yh4 5/8oeOf/KHjn/yh45/8oeOf/KHjn/xo+vv8aPr4A////AP///wD///8A////AP///wAaPr7wKnzn/yuA 6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA 6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA 6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/yuA6v8rgOr/K4Dq/xo+vv8aPr4A////AP///wD///8A////AP// /wAaPr7wNJf7/zyu//88r///PK///zyv//88r///PK///zyv//88r///PK///zyv//88r///PK///zyv //88r///PK///zyv//88r///PK///zyv//88r///PK///zyv//88r///PK///zyv//88r///PK///zyv //88r///PK///zyv//88r///PK///zyv//88r///PK///zyv//88r///Np3//xo+vv8aPr4A////AP// /wD///8A////AP///wAaPr6HGj6+8Bo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+ vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+ vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+vv8aPr7/Gj6+/xo+ vpYaPr4A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///////8AAP///////wAA//////// AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA4AAAAAAH AADgAAAAAAMAAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAOAA AAAABwAA4AAAAAAHAADgAAAAAAcAAOAAAAAABwAA4AAAAAAHAADgAAAAAAcAAP///////wAA//////// AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP// /////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA//////// AAA= ================================================ FILE: FreeHttpControl/StaticDataAddWindow.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class StaticDataAddWindow { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(StaticDataAddWindow)); this.comboBox_CaseStaticDataClass = new System.Windows.Forms.ComboBox(); this.lb_info_1 = new System.Windows.Forms.Label(); this.comboBox_CaseStaticDataType = new System.Windows.Forms.ComboBox(); this.lb_info_2 = new System.Windows.Forms.Label(); this.tb_key = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.tb_value = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.pb_confirm = new FreeHttp.FreeHttpControl.MyEnabledPictureButton(); ((System.ComponentModel.ISupportInitialize)(this.pb_confirm)).BeginInit(); this.SuspendLayout(); // // comboBox_CaseStaticDataClass // this.comboBox_CaseStaticDataClass.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBox_CaseStaticDataClass.FormattingEnabled = true; this.comboBox_CaseStaticDataClass.Location = new System.Drawing.Point(72, 41); this.comboBox_CaseStaticDataClass.Name = "comboBox_CaseStaticDataClass"; this.comboBox_CaseStaticDataClass.Size = new System.Drawing.Size(167, 20); this.comboBox_CaseStaticDataClass.TabIndex = 14; this.comboBox_CaseStaticDataClass.SelectedIndexChanged += new System.EventHandler(this.comboBox_CaseStaticDataClass_SelectedIndexChanged); // // lb_info_1 // this.lb_info_1.AutoSize = true; this.lb_info_1.Location = new System.Drawing.Point(8, 44); this.lb_info_1.Name = "lb_info_1"; this.lb_info_1.Size = new System.Drawing.Size(59, 12); this.lb_info_1.TabIndex = 15; this.lb_info_1.Text = "DataType:"; // // comboBox_CaseStaticDataType // this.comboBox_CaseStaticDataType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBox_CaseStaticDataType.FormattingEnabled = true; this.comboBox_CaseStaticDataType.Location = new System.Drawing.Point(242, 41); this.comboBox_CaseStaticDataType.Name = "comboBox_CaseStaticDataType"; this.comboBox_CaseStaticDataType.Size = new System.Drawing.Size(185, 20); this.comboBox_CaseStaticDataType.TabIndex = 16; this.comboBox_CaseStaticDataType.SelectedIndexChanged += new System.EventHandler(this.comboBox_CaseStaticDataType_SelectedIndexChanged); // // lb_info_2 // this.lb_info_2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lb_info_2.ForeColor = System.Drawing.Color.Maroon; this.lb_info_2.Location = new System.Drawing.Point(8, 72); this.lb_info_2.Name = "lb_info_2"; this.lb_info_2.Size = new System.Drawing.Size(419, 106); this.lb_info_2.TabIndex = 17; this.lb_info_2.Text = "StaticDataInfo"; // // tb_key // this.tb_key.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.tb_key.Location = new System.Drawing.Point(7, 188); this.tb_key.Name = "tb_key"; this.tb_key.Size = new System.Drawing.Size(123, 21); this.tb_key.TabIndex = 18; this.tb_key.WatermarkText = "Static Data Name"; // // tb_value // this.tb_value.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.tb_value.Location = new System.Drawing.Point(135, 188); this.tb_value.Name = "tb_value"; this.tb_value.Size = new System.Drawing.Size(265, 21); this.tb_value.TabIndex = 19; this.tb_value.WatermarkText = "Initialize Data Format"; // // pb_confirm // this.pb_confirm.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.pb_confirm.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_confirm.DisEnabledImage = null; this.pb_confirm.EnabledImage = null; this.pb_confirm.Image = ((System.Drawing.Image)(resources.GetObject("pb_confirm.Image"))); this.pb_confirm.Location = new System.Drawing.Point(405, 187); this.pb_confirm.Name = "pb_confirm"; this.pb_confirm.Size = new System.Drawing.Size(23, 23); this.pb_confirm.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pb_confirm.TabIndex = 20; this.pb_confirm.TabStop = false; this.pb_confirm.Click += new System.EventHandler(this.pb_confirm_Click); // // StaticDataAddWindow // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(436, 218); this.Controls.Add(this.lb_info_2); this.Controls.Add(this.pb_confirm); this.Controls.Add(this.tb_value); this.Controls.Add(this.tb_key); this.Controls.Add(this.comboBox_CaseStaticDataType); this.Controls.Add(this.lb_info_1); this.Controls.Add(this.comboBox_CaseStaticDataClass); this.IsShowHideBox = false; this.MaximizeBox = false; this.Name = "StaticDataAddWindow"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Add Static Data"; this.WindowName = "Add Static Data"; this.Load += new System.EventHandler(this.StaticDataAdd_Load); this.Controls.SetChildIndex(this.comboBox_CaseStaticDataClass, 0); this.Controls.SetChildIndex(this.lb_info_1, 0); this.Controls.SetChildIndex(this.comboBox_CaseStaticDataType, 0); this.Controls.SetChildIndex(this.tb_key, 0); this.Controls.SetChildIndex(this.tb_value, 0); this.Controls.SetChildIndex(this.pb_confirm, 0); this.Controls.SetChildIndex(this.lb_info_2, 0); ((System.ComponentModel.ISupportInitialize)(this.pb_confirm)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.ComboBox comboBox_CaseStaticDataClass; private System.Windows.Forms.Label lb_info_1; private System.Windows.Forms.ComboBox comboBox_CaseStaticDataType; private System.Windows.Forms.Label lb_info_2; private WatermakTextBox tb_key; private WatermakTextBox tb_value; private MyEnabledPictureButton pb_confirm; } } ================================================ FILE: FreeHttpControl/StaticDataAddWindow.cs ================================================ using FreeHttp.AutoTest.RunTimeStaticData; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class StaticDataAddWindow : MyBaseInfoWindow { internal StaticDataAddWindow(ActuatorStaticDataCollection yourActuatorStaticDataCollection, int yourIndex, Action yourShowInfoChange) { InitializeComponent(); actuatorStaticDataCollection = yourActuatorStaticDataCollection; startIndex = yourIndex; ShowInfoChange = yourShowInfoChange; } Action ShowInfoChange; ActuatorStaticDataCollection actuatorStaticDataCollection = null; BindingSource bs_DataClass = new BindingSource(); int startIndex; //BindingSource bs_DataType = new BindingSource(); private void StaticDataAdd_Load(object sender, EventArgs e) { bs_DataClass.DataSource = CaseRunTimeDataTypeEngine.dictionaryStaticDataTypeSource; comboBox_CaseStaticDataClass.DataSource = bs_DataClass; comboBox_CaseStaticDataClass.DisplayMember = "Key"; //comboBox_CaseStaticDataClass.ValueMember = "Value"; try { comboBox_CaseStaticDataClass.SelectedIndex = startIndex; } catch { comboBox_CaseStaticDataClass.SelectedIndex = 0; } if(actuatorStaticDataCollection==null) { MessageBox.Show("actuatorStaticDataCollection is null"); this.Close(); } } private void comboBox_CaseStaticDataClass_SelectedIndexChanged(object sender, EventArgs e) { comboBox_CaseStaticDataType.DataSource = ((KeyValuePair>)comboBox_CaseStaticDataClass.SelectedItem).Value; } private void comboBox_CaseStaticDataType_SelectedIndexChanged(object sender, EventArgs e) { List tempInfoList = CaseRunTimeDataTypeEngine.dictionaryStaticDataAnnotation[(CaseStaticDataType)comboBox_CaseStaticDataType.SelectedItem]; lb_info_2.Text = string.Format("【{4}】:{0}\r\n【Data Format】: [{1}] [eg: {2}]\r\n{3}",tempInfoList[4],tempInfoList[1],tempInfoList[2],tempInfoList[3],tempInfoList[0]); tb_value.WatermarkText = tempInfoList[1]; } private void pb_confirm_Click(object sender, EventArgs e) { if(tb_key.Text==""|| tb_value.Text=="") { MessageBox.Show("the key or the value is empty ,please set it", "stop", MessageBoxButtons.OK, MessageBoxIcon.Information); FreeHttpWindow.MarkWarnControl(tb_key); FreeHttpWindow.MarkWarnControl(tb_value); return; } if(actuatorStaticDataCollection.IsHaveSameKey(tb_key.Text)) { //DialogResult tempDs; if (MessageBox.Show(string.Format("find the same data name in your data list ,do you want delete that repetitive data [{0}] fist", tb_key.Text), "Same Name", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Cancel) { return; } actuatorStaticDataCollection.RemoveStaticData(tb_key.Text, false); } string errMes=null; if(!RunTimeStaticDataHelper.AddStaticDataToCollection(actuatorStaticDataCollection, (CaseStaticDataType)comboBox_CaseStaticDataType.SelectedItem, tb_key.Text, tb_value.Text,out errMes)) { MessageBox.Show(string.Format("add static data fail \r\n{0}",string.IsNullOrEmpty(errMes)?"unknow error":errMes), "stop", MessageBoxButtons.OK, MessageBoxIcon.Information); FreeHttpWindow.MarkWarnControl(tb_value); return; } if (ShowInfoChange!=null) { ShowInfoChange((FreeHttp.FreeHttpControl.StaticDataManageWindow.ShowRunTimeParameterType)(comboBox_CaseStaticDataClass.SelectedIndex)); } this.Close(); } } } ================================================ FILE: FreeHttpControl/StaticDataAddWindow.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 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 ================================================ FILE: FreeHttpControl/StaticDataManageWindow.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class StaticDataManageWindow { private System.Windows.Forms.ListView listView_CaseParameter; private System.Windows.Forms.ColumnHeader columnHeader1; private System.Windows.Forms.ColumnHeader columnHeader3; private System.Windows.Forms.Label lb_info_dataSouce; private System.Windows.Forms.Label lb_info_parameter; private System.Windows.Forms.Label lb_info_keyValue; private System.Windows.Forms.ColumnHeader columnHeader2; private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(StaticDataManageWindow)); this.listView_CaseParameter = new System.Windows.Forms.ListView(); this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.lb_info_dataSouce = new System.Windows.Forms.Label(); this.lb_info_parameter = new System.Windows.Forms.Label(); this.lb_info_keyValue = new System.Windows.Forms.Label(); this.pb_addStaticData = new System.Windows.Forms.PictureBox(); this.pb_delStaticData = new System.Windows.Forms.PictureBox(); this.tb_valueAdd = new System.Windows.Forms.TextBox(); this.tb_keyAdd = new System.Windows.Forms.TextBox(); this.label_info = new System.Windows.Forms.Label(); this.pb_edit = new FreeHttp.FreeHttpControl.MyEnabledPictureButton(); this.pb_next = new FreeHttp.FreeHttpControl.MyEnabledPictureButton(); this.pb_reset = new FreeHttp.FreeHttpControl.MyEnabledPictureButton(); ((System.ComponentModel.ISupportInitialize)(this.pb_addStaticData)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_delStaticData)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_edit)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_next)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_reset)).BeginInit(); this.SuspendLayout(); // // listView_CaseParameter // this.listView_CaseParameter.AllowDrop = true; this.listView_CaseParameter.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnHeader1, this.columnHeader2, this.columnHeader3}); this.listView_CaseParameter.FullRowSelect = true; this.listView_CaseParameter.Location = new System.Drawing.Point(4, 35); this.listView_CaseParameter.Name = "listView_CaseParameter"; this.listView_CaseParameter.Size = new System.Drawing.Size(564, 328); this.listView_CaseParameter.TabIndex = 14; this.listView_CaseParameter.UseCompatibleStateImageBehavior = false; this.listView_CaseParameter.View = System.Windows.Forms.View.Details; this.listView_CaseParameter.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.listView_CaseParameter_ItemDrag); this.listView_CaseParameter.SelectedIndexChanged += new System.EventHandler(this.listView_CaseParameter_SelectedIndexChanged); this.listView_CaseParameter.DoubleClick += new System.EventHandler(this.listView_CaseParameter_DoubleClick); // // columnHeader1 // this.columnHeader1.Text = "Name"; this.columnHeader1.Width = 101; // // columnHeader2 // this.columnHeader2.Text = "Type"; this.columnHeader2.Width = 93; // // columnHeader3 // this.columnHeader3.Text = "Value"; this.columnHeader3.Width = 362; // // lb_info_dataSouce // this.lb_info_dataSouce.AutoSize = true; this.lb_info_dataSouce.Cursor = System.Windows.Forms.Cursors.Hand; this.lb_info_dataSouce.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lb_info_dataSouce.ForeColor = System.Drawing.Color.DarkGray; this.lb_info_dataSouce.Location = new System.Drawing.Point(314, 14); this.lb_info_dataSouce.Name = "lb_info_dataSouce"; this.lb_info_dataSouce.Size = new System.Drawing.Size(79, 13); this.lb_info_dataSouce.TabIndex = 19; this.lb_info_dataSouce.Text = "DataSouce"; this.lb_info_dataSouce.Click += new System.EventHandler(this.lb_info_runTimeParameter_Click); this.lb_info_dataSouce.MouseLeave += new System.EventHandler(this.lb_info_MouseLeave); this.lb_info_dataSouce.MouseMove += new System.Windows.Forms.MouseEventHandler(this.lb_info_MouseMove); // // lb_info_parameter // this.lb_info_parameter.AutoSize = true; this.lb_info_parameter.Cursor = System.Windows.Forms.Cursors.Hand; this.lb_info_parameter.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lb_info_parameter.ForeColor = System.Drawing.Color.DarkGray; this.lb_info_parameter.Location = new System.Drawing.Point(231, 14); this.lb_info_parameter.Name = "lb_info_parameter"; this.lb_info_parameter.Size = new System.Drawing.Size(79, 13); this.lb_info_parameter.TabIndex = 18; this.lb_info_parameter.Text = "Parameter"; this.lb_info_parameter.Click += new System.EventHandler(this.lb_info_runTimeParameter_Click); this.lb_info_parameter.MouseLeave += new System.EventHandler(this.lb_info_MouseLeave); this.lb_info_parameter.MouseMove += new System.Windows.Forms.MouseEventHandler(this.lb_info_MouseMove); // // lb_info_keyValue // this.lb_info_keyValue.AutoSize = true; this.lb_info_keyValue.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(194)))), ((int)(((byte)(217)))), ((int)(((byte)(247))))); this.lb_info_keyValue.Cursor = System.Windows.Forms.Cursors.Hand; this.lb_info_keyValue.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.lb_info_keyValue.ForeColor = System.Drawing.Color.SaddleBrown; this.lb_info_keyValue.Location = new System.Drawing.Point(154, 14); this.lb_info_keyValue.Name = "lb_info_keyValue"; this.lb_info_keyValue.Size = new System.Drawing.Size(71, 13); this.lb_info_keyValue.TabIndex = 17; this.lb_info_keyValue.Text = "KeyValue"; this.lb_info_keyValue.Click += new System.EventHandler(this.lb_info_runTimeParameter_Click); this.lb_info_keyValue.MouseLeave += new System.EventHandler(this.lb_info_MouseLeave); this.lb_info_keyValue.MouseMove += new System.Windows.Forms.MouseEventHandler(this.lb_info_MouseMove); // // pb_addStaticData // this.pb_addStaticData.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_addStaticData.BackColor = System.Drawing.Color.White; this.pb_addStaticData.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_addStaticData.Image = ((System.Drawing.Image)(resources.GetObject("pb_addStaticData.Image"))); this.pb_addStaticData.Location = new System.Drawing.Point(521, 36); this.pb_addStaticData.Name = "pb_addStaticData"; this.pb_addStaticData.Size = new System.Drawing.Size(23, 23); this.pb_addStaticData.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_addStaticData.TabIndex = 55; this.pb_addStaticData.TabStop = false; this.pb_addStaticData.Click += new System.EventHandler(this.pb_addStaticData_Click); this.pb_addStaticData.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pb_addStaticData.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // pb_delStaticData // this.pb_delStaticData.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.pb_delStaticData.BackColor = System.Drawing.Color.White; this.pb_delStaticData.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_delStaticData.Image = ((System.Drawing.Image)(resources.GetObject("pb_delStaticData.Image"))); this.pb_delStaticData.Location = new System.Drawing.Point(544, 36); this.pb_delStaticData.Name = "pb_delStaticData"; this.pb_delStaticData.Size = new System.Drawing.Size(23, 23); this.pb_delStaticData.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.pb_delStaticData.TabIndex = 54; this.pb_delStaticData.TabStop = false; this.pb_delStaticData.Click += new System.EventHandler(this.pb_delStaticData_Click); this.pb_delStaticData.MouseLeave += new System.EventHandler(this.pictureBox_MouseLeave); this.pb_delStaticData.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseMove); // // tb_valueAdd // this.tb_valueAdd.Location = new System.Drawing.Point(118, 397); this.tb_valueAdd.Name = "tb_valueAdd"; this.tb_valueAdd.Size = new System.Drawing.Size(370, 21); this.tb_valueAdd.TabIndex = 57; // // tb_keyAdd // this.tb_keyAdd.Enabled = false; this.tb_keyAdd.Location = new System.Drawing.Point(4, 397); this.tb_keyAdd.Name = "tb_keyAdd"; this.tb_keyAdd.Size = new System.Drawing.Size(108, 21); this.tb_keyAdd.TabIndex = 56; // // label_info // this.label_info.AutoSize = true; this.label_info.Location = new System.Drawing.Point(7, 375); this.label_info.Name = "label_info"; this.label_info.Size = new System.Drawing.Size(83, 12); this.label_info.TabIndex = 61; this.label_info.Text = "Data Origin :"; // // pb_edit // this.pb_edit.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_edit.DisEnabledImage = ((System.Drawing.Image)(resources.GetObject("pb_edit.DisEnabledImage"))); this.pb_edit.EnabledImage = ((System.Drawing.Image)(resources.GetObject("pb_edit.EnabledImage"))); this.pb_edit.Image = ((System.Drawing.Image)(resources.GetObject("pb_edit.Image"))); this.pb_edit.Location = new System.Drawing.Point(495, 397); this.pb_edit.Name = "pb_edit"; this.pb_edit.Size = new System.Drawing.Size(23, 23); this.pb_edit.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pb_edit.TabIndex = 62; this.pb_edit.TabStop = false; this.pb_edit.Click += new System.EventHandler(this.pictureBox_controlData_Click); // // pb_next // this.pb_next.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_next.DisEnabledImage = ((System.Drawing.Image)(resources.GetObject("pb_next.DisEnabledImage"))); this.pb_next.EnabledImage = ((System.Drawing.Image)(resources.GetObject("pb_next.EnabledImage"))); this.pb_next.Image = ((System.Drawing.Image)(resources.GetObject("pb_next.Image"))); this.pb_next.Location = new System.Drawing.Point(519, 397); this.pb_next.Name = "pb_next"; this.pb_next.Size = new System.Drawing.Size(23, 23); this.pb_next.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pb_next.TabIndex = 63; this.pb_next.TabStop = false; this.pb_next.Click += new System.EventHandler(this.pictureBox_controlData_Click); // // pb_reset // this.pb_reset.Cursor = System.Windows.Forms.Cursors.Hand; this.pb_reset.DisEnabledImage = ((System.Drawing.Image)(resources.GetObject("pb_reset.DisEnabledImage"))); this.pb_reset.EnabledImage = ((System.Drawing.Image)(resources.GetObject("pb_reset.EnabledImage"))); this.pb_reset.Image = ((System.Drawing.Image)(resources.GetObject("pb_reset.Image"))); this.pb_reset.Location = new System.Drawing.Point(543, 397); this.pb_reset.Name = "pb_reset"; this.pb_reset.Size = new System.Drawing.Size(23, 23); this.pb_reset.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; this.pb_reset.TabIndex = 64; this.pb_reset.TabStop = false; this.pb_reset.Click += new System.EventHandler(this.pictureBox_controlData_Click); // // StaticDataManageWindow // this.ClientSize = new System.Drawing.Size(572, 428); this.Controls.Add(this.pb_reset); this.Controls.Add(this.pb_next); this.Controls.Add(this.pb_edit); this.Controls.Add(this.label_info); this.Controls.Add(this.tb_valueAdd); this.Controls.Add(this.tb_keyAdd); this.Controls.Add(this.pb_addStaticData); this.Controls.Add(this.pb_delStaticData); this.Controls.Add(this.lb_info_dataSouce); this.Controls.Add(this.lb_info_parameter); this.Controls.Add(this.lb_info_keyValue); this.Controls.Add(this.listView_CaseParameter); this.IntervalTime = 3000; this.IsShowHideBox = false; this.KeyPreview = true; this.MaximizeBox = false; this.Name = "StaticDataManageWindow"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.WindowName = ""; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.StaticDataManageWindow_FormClosing); this.Load += new System.EventHandler(this.StaticDataManageWindow_Load); this.Controls.SetChildIndex(this.listView_CaseParameter, 0); this.Controls.SetChildIndex(this.lb_info_keyValue, 0); this.Controls.SetChildIndex(this.lb_info_parameter, 0); this.Controls.SetChildIndex(this.lb_info_dataSouce, 0); this.Controls.SetChildIndex(this.pb_delStaticData, 0); this.Controls.SetChildIndex(this.pb_addStaticData, 0); this.Controls.SetChildIndex(this.tb_keyAdd, 0); this.Controls.SetChildIndex(this.tb_valueAdd, 0); this.Controls.SetChildIndex(this.label_info, 0); this.Controls.SetChildIndex(this.pb_edit, 0); this.Controls.SetChildIndex(this.pb_next, 0); this.Controls.SetChildIndex(this.pb_reset, 0); ((System.ComponentModel.ISupportInitialize)(this.pb_addStaticData)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_delStaticData)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_edit)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_next)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pb_reset)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } private System.Windows.Forms.PictureBox pb_addStaticData; private System.Windows.Forms.PictureBox pb_delStaticData; private System.Windows.Forms.TextBox tb_valueAdd; private System.Windows.Forms.TextBox tb_keyAdd; private System.Windows.Forms.Label label_info; private MyEnabledPictureButton pb_edit; private MyEnabledPictureButton pb_next; private MyEnabledPictureButton pb_reset; } } ================================================ FILE: FreeHttpControl/StaticDataManageWindow.cs ================================================ using FreeHttp.AutoTest.RunTimeStaticData; using FreeHttp.AutoTest.RunTimeStaticData.MyStaticData; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { partial class StaticDataManageWindow : MyBaseInfoWindow { public enum ShowRunTimeParameterType { KeyValue = 0, Parameter = 1, DataSouce=2 } public StaticDataManageWindow(ActuatorStaticDataCollection yourActuatorStaticDataCollection) { InitializeComponent(); actuatorStaticDataCollection = yourActuatorStaticDataCollection; if (yourActuatorStaticDataCollection != null) { actuatorStaticDataCollection.OnChangeCollection += actuatorStaticDataCollection_OnChangeCollection; } } private ShowRunTimeParameterType nowShowType = ShowRunTimeParameterType.KeyValue; private ListViewItem nowEditItem = null; private ActuatorStaticDataCollection actuatorStaticDataCollection = null; public override void VirtualUpdataTime_Tick() { //pb_edit.Enabled = !pb_edit.Enabled; UpdatalistView_CaseParameter(false); } private void StaticDataManageWindow_Load(object sender, EventArgs e) { if (actuatorStaticDataCollection == null) { MessageBox.Show("actuatorStaticDataCollection is null"); this.Close(); } ShowInfoChange(nowShowType); } private void StaticDataManageWindow_FormClosing(object sender, FormClosingEventArgs e) { if(actuatorStaticDataCollection!=null) { actuatorStaticDataCollection.OnChangeCollection -= actuatorStaticDataCollection_OnChangeCollection; actuatorStaticDataCollection = null; } } void actuatorStaticDataCollection_OnChangeCollection(object sender, ActuatorStaticDataCollection.ChangeDataEventArgs e) { UpdatalistView_CaseParameter(e.IsAddOrDel); } private void lb_info_runTimeParameter_Click(object sender, EventArgs e) { ShowRunTimeParameterType hereType; if (Enum.TryParse(((Label)sender).Text, out hereType)) { ShowInfoChange(hereType); } } private void listView_CaseParameter_SelectedIndexChanged(object sender, EventArgs e) { if (listView_CaseParameter.SelectedItems.Count > 0) { EditItemChange(listView_CaseParameter.SelectedItems[0]); } } private void listView_CaseParameter_DoubleClick(object sender, EventArgs e) { if(listView_CaseParameter.SelectedItems!=null&& listView_CaseParameter.SelectedItems.Count>0) { if (listView_CaseParameter.SelectedItems[0].Tag is MyStaticDataSourceCsv) { MyStaticDataSourceCsv nowDataSourceCsv = (MyStaticDataSourceCsv)listView_CaseParameter.SelectedItems[0].Tag; //ShowSheetForm f = new ShowSheetForm("", nowDataSourceCsv.GetDataSource()); EditSheetForm f = new EditSheetForm(listView_CaseParameter.SelectedItems[0].SubItems[0].Text, nowDataSourceCsv.GetDataSource(), nowDataSourceCsv.GetDataLocation()); f.StartPosition = FormStartPosition.CenterScreen; f.SaveSheetData += editSheetForm_SaveSheetData; f.ShowDialog(); } } } void editSheetForm_SaveSheetData(object sender, EditSheetForm.SaveSheetDataEventArgs e) { if (e.SheetData != null && listView_CaseParameter.SelectedItems != null && listView_CaseParameter.SelectedItems.Count > 0) { if (listView_CaseParameter.SelectedItems[0].Tag is MyStaticDataSourceCsv) { MyStaticDataSourceCsv nowDataSourceCsv = (MyStaticDataSourceCsv)listView_CaseParameter.SelectedItems[0].Tag; if(nowDataSourceCsv.SetDataSource(e.SheetData)) { if (e.SelectCell != null) { nowDataSourceCsv.SetDataLocation(e.SelectCell.Value.Y, e.SelectCell.Value.X); } UpdatalistView_CaseParameter(false); } else { MessageBox.Show("you data is empty \nplease check it ", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } if(nowEditItem!=null) { tb_valueAdd.Text = nowEditItem.SubItems[2].Text; } } } } private void listView_CaseParameter_ItemDrag(object sender, ItemDragEventArgs e) { if (listView_CaseParameter.SelectedItems != null && listView_CaseParameter.SelectedItems.Count > 0) { //this.DoDragDrop(listView_CaseParameter.SelectedItems, DragDropEffects.Move); this.DoDragDrop(string.Format("*#{0}(+)*#", listView_CaseParameter.SelectedItems[0].SubItems[0].Text), DragDropEffects.Move); } } private void pictureBox_controlData_Click(object sender, EventArgs e) { if (nowEditItem==null) { MessageBox.Show("can not find edit Parameter Data", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } IRunTimeStaticData editRunTimeStaticData = (IRunTimeStaticData)nowEditItem.Tag; if(sender == pb_edit) { if (!editRunTimeStaticData.DataSet(tb_valueAdd.Text)) { MessageBox.Show(string.Format("{0} is illegal for this RunTimeStaticData", tb_valueAdd.Text), "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); } } else if(sender == pb_next) { editRunTimeStaticData.DataMoveNext(); } else if (sender == pb_reset) { editRunTimeStaticData.DataReset(); } else { MessageBox.Show("can not find edit data", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop); } FreeHttpWindow.MarkRuleItem(nowEditItem); nowEditItem.SubItems[2].Text = tb_valueAdd.Text = editRunTimeStaticData.DataCurrent(); } private void pb_addStaticData_Click(object sender, EventArgs e) { StaticDataAddWindow f = new StaticDataAddWindow(actuatorStaticDataCollection, (int)nowShowType, ShowInfoChange); f.ShowDialog(); } private void pb_delStaticData_Click(object sender, EventArgs e) { if (listView_CaseParameter.SelectedItems.Count > 0) { foreach(ListViewItem teamItem in listView_CaseParameter.SelectedItems) { actuatorStaticDataCollection.RemoveStaticData(teamItem.SubItems[0].Text, false); if (nowEditItem == teamItem) { EditItemChange(null); } } } else { MessageBox.Show("please select the static data items that your want remove"); } } #region public event helper private void lb_info_MouseMove(object sender, MouseEventArgs e) { ((Label)sender).BackColor = Color.LavenderBlush; } private void lb_info_MouseLeave(object sender, EventArgs e) { ((Label)sender).BackColor = Color.FromArgb(194, 217, 247); } //pictureBox change for all public void pictureBox_MouseMove(object sender, MouseEventArgs e) { ((PictureBox)sender).BackColor = Color.Honeydew; } //pictureBox change for all public void pictureBox_MouseLeave(object sender, EventArgs e) { ((PictureBox)sender).BackColor = Color.Transparent; } #endregion #region innerFunction private void ShowInfoChange(ShowRunTimeParameterType showParameter) { switch (showParameter) { case ShowRunTimeParameterType.KeyValue: nowShowType = ShowRunTimeParameterType.KeyValue; lb_info_keyValue.ForeColor = Color.SaddleBrown; lb_info_parameter.ForeColor = lb_info_dataSouce.ForeColor = Color.DarkGray; break; case ShowRunTimeParameterType.Parameter: nowShowType = ShowRunTimeParameterType.Parameter; lb_info_parameter.ForeColor = Color.SaddleBrown; lb_info_keyValue.ForeColor = lb_info_dataSouce.ForeColor = Color.DarkGray; break; case ShowRunTimeParameterType.DataSouce: nowShowType = ShowRunTimeParameterType.DataSouce; lb_info_dataSouce.ForeColor = Color.SaddleBrown; lb_info_keyValue.ForeColor = lb_info_parameter.ForeColor = Color.DarkGray; break; default: MessageBox.Show("nonsupport static data type"); break; } EditItemChange(null); UpdatalistView_CaseParameter(true); } private void EditItemChange(ListViewItem yourEidtItem) { if (yourEidtItem == null) { nowEditItem = null; tb_keyAdd.Text = tb_valueAdd.Text = ""; label_info.Text = "please select a data item"; pb_edit.Enabled = pb_next.Enabled = pb_reset.Enabled = false; return; } nowEditItem = yourEidtItem; IRunTimeStaticData editStaticData = null; tb_keyAdd.Text = nowEditItem.SubItems[0].Text; tb_valueAdd.Text = nowEditItem.SubItems[2].Text; switch (nowShowType) { case ShowRunTimeParameterType.KeyValue: pb_edit.Enabled = true; pb_next.Enabled = pb_reset.Enabled = false; break; case ShowRunTimeParameterType.Parameter: case ShowRunTimeParameterType.DataSouce: pb_edit.Enabled = pb_next.Enabled = pb_reset.Enabled = true; break; default: MessageBox.Show("nonsupport static data type"); break; } editStaticData = nowEditItem.Tag as IRunTimeStaticData; if (editStaticData == null) { label_info.Text = "error data for IRunTimeStaticData"; pb_edit.Enabled = pb_next.Enabled = pb_reset.Enabled = false; return; } label_info.Text = string.Format("Data Origin : {0} [eg:{1}]", editStaticData.OriginalConnectString, CaseRunTimeDataTypeEngine.dictionaryStaticDataAnnotation[editStaticData.RunTimeStaticDataType][1]); } [MethodImplAttribute(MethodImplOptions.Synchronized)] public void UpdatalistView_CaseParameter(bool isNew) { if (isNew) { MyControlHelper.SetControlFreeze(listView_CaseParameter); listView_CaseParameter.BeginUpdate(); listView_CaseParameter.Items.Clear(); try { //Dictionary tempUpdateStaticDataDictionary = null; //Dictionary tempUpdateDataSourceDictionary = null; dynamic tempUpdateDictionary = null; switch (nowShowType) { case ShowRunTimeParameterType.KeyValue: tempUpdateDictionary = actuatorStaticDataCollection.RunActuatorStaticDataKeyList; break; case ShowRunTimeParameterType.Parameter: tempUpdateDictionary = actuatorStaticDataCollection.RunActuatorStaticDataParameterList; break; case ShowRunTimeParameterType.DataSouce: tempUpdateDictionary = actuatorStaticDataCollection.RunActuatorStaticDataSouceList; break; default: MessageBox.Show("nonsupport static data type"); break; } if (tempUpdateDictionary != null && tempUpdateDictionary.Count > 0) { foreach (var tempKvp in tempUpdateDictionary) { ListViewItem tempItem = new ListViewItem(new string[] { tempKvp.Key, CaseRunTimeDataTypeEngine.dictionaryStaticDataAnnotation[tempKvp.Value.RunTimeStaticDataType][0], tempKvp.Value.DataCurrent() }); tempItem.Tag = tempKvp.Value; listView_CaseParameter.Items.Add(tempItem); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } listView_CaseParameter.EndUpdate(); MyControlHelper.SetControlUnfreeze(listView_CaseParameter); } else { foreach (ListViewItem tempItem in listView_CaseParameter.Items) { if (actuatorStaticDataCollection.IsHaveSameKey(tempItem.SubItems[0].Text)) { IRunTimeStaticData tempStaticData = tempItem.Tag as IRunTimeStaticData; if (tempStaticData != null) { if(tempItem.SubItems[2].Text != tempStaticData.DataCurrent()) { tempItem.SubItems[2].Text = tempStaticData.DataCurrent(); } } else { UpdatalistView_CaseParameter(true); return; } } else { UpdatalistView_CaseParameter(true); return; } } } } #endregion } } ================================================ FILE: FreeHttpControl/StaticDataManageWindow.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 iVBORw0KGgoAAAANSUhEUgAAAgwAAAIMCAYAAACZhvQPAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAAB3RJTUUH 4AoSFw0uGiHw4AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wNi0yOFQyMjoxOTozNCswODowMPoU86cA AAAldEVYdGRhdGU6bW9kaWZ5ADIwMTYtMTAtMThUMjM6MTM6NDYrMDg6MDC8NA02AAAAQ3RFWHRzb2Z0 d2FyZQAvdXNyL2xvY2FsL2ltYWdlbWFnaWNrL3NoYXJlL2RvYy9JbWFnZU1hZ2ljay03Ly9pbmRleC5o dG1svbV5CgAAAGN0RVh0c3ZnOmNvbW1lbnQAIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTku MC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgzkiQCwAA ABh0RVh0VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7LwAAABh0RVh0VGh1bWI6OkltYWdlOjpIZWln aHQANTI0TcOldwAAABd0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAA1MjTeMvUqAAAAGXRFWHRUaHVtYjo6 TWltZXR5cGUAaW1hZ2UvcG5nP7JWTgAAABd0RVh0VGh1bWI6Ok1UaW1lADE0NzY4MDM2MjZk0v1AAAAA EnRFWHRUaHVtYjo6U2l6ZQAyMzk0MEJ3Fj0RAAAAYnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vaG9tZS93 d3dyb290L25ld3NpdGUvd3d3LmVhc3lpY29uLm5ldC9jZG4taW1nLmVhc3lpY29uLmNuL3NyYy8xMjA1 OC8xMjA1ODM0LnBuZxxeLFIAADkJSURBVHhe7Z1puB1VmbbNHAgxzIEwCSKjCDg2giCICBIFRESQURtw AgW0tenwgYqKIEJra4Moioo4YLeAgDQgg9IMGkSBRm00MskY5jBl+L5nmTcfxUudc/Y+e1ftelfd93Xd f1ovez9vPWudlXNqV70IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgN95w/hlj 5RQ5Q24it5f7yI/Jk+R35YXyOnmrvFPOlY/Lp+UCuVAukv93CNN/lv478+VT8lF5v5wjb5K/lD+V35DH yQ/Ld8qt5HpyRTlJ2qcGAACAvqEfsOPldPlaua/8vDxP3iIfkcP9kG+q6dBxr7xefk/+s9xVbiSnyTEW HwAAAJagH5AT5EvkTPlpebG8W6Z/0Zf9wG2D6Tcf6bchZ8uPyPSbipUkhwkAAMgb/bAbJ9eW75anyvRb gvSv7bIfmDi0j8mrZDpcpT+/pD932JQBAAACoR9gE+Wm8gh5iUz3C5T98MP+eZdM92vsLdeQ/DYCAACa g34wJdOfFN4nL5BPyLIfaFi/6QbP0+Rb5bJ2yQAAAKpHP3jSjYiby/RtgD/Ksh9U2EyflZfLg2X6LYRd VQAAgB7RD5X0tcV0QDhB3i7LfhBhTNO3TK6RH5Cr2SUHAADoDP3wSP/6PFL+jyz7QYN5mp5JcZHcTU6x OgAAACxGPxzSVxvTHfc/kXxzAZd4nzxebmBVAQCAtqEfAsvKQ2R6UmHZDwvEoum5GOlplm+S46xGAACQ I9ro01MTj5L3yLIfCoidmu592F1OtHoBAEBktKGnQ8LRMr0/oWzjR+zV2TK9O4PDAwBAJLRxp3cSHC7T OwvKNnjEqrxa7ijHWh0BAKBJaINOz0d4l+SbDdgUz5GbWUUBAGCQpA1ZnmsbNGITfVKmd1+sYLUFAIA6 0MY7VabXIvOOBozm7+XO0toMAAB9R5vs6+SVsmwjRoxk+prmKXJlqzcAAPSCNtT05sfDZHqtcdnGixjd 9C2LbazyAADQDdpAV5fpdcVlGyxijqY3nabD8QRbBgAAMBTaLLeQN8iyDRWxLZ4uV7JlAQAACW2MyfSV yPtl2eaJ2FZ/ITe0pQIA0E60EY6T6Vewz8iyzRIRF3ur3NKWDgBAO9DGl25kPFYukmWbIyKW+ze5ky0l AIA80UY3WZ5gGx8ijt70bpRdbWkBAOSBNrZJ8ou20SFi/3xY7mZLDQAgJtrI0vsdjrONDRGr80H5Vlt6 AAAx0MY1Rn7MNjJErM875Va2FAEAmos2q/3ks7Z5IeJgvEnydUwAaB7anLaT6Uasss0LEQfjxZIHQAHA 4NFmtK5Mb+Ar26wQsRl+VfLIaQCoH20+U+QPbDNCxOabnntyiC1hAIBq0YaTPNI2IESM533ydbakAQD6 jzaZrWT63nfZJoSIsUz3NyxryxsAoHfSpiIvtU0GEfPyE7bUAQBGjzaTI9zmgoj5+YB8tS17AIDO0eax sUwvuinbXBAxT9ONzBNtGwAAGBptFmPlabZ5IGL7XCjfYVsCAMAL0SaxjXzKNg1EbLe/lNNsewAA+PtB YYL8oW0SiIhFD7CtAgDajDaDbSXvfkDE4bxe8hVMgDaixT9OnmWbASJiJ77HthAAaANa9K+S8wqbACJi p6Znsixl2wkA5IoW+omFhY+IOBrTNym2s20FAHJCi3uGvN0WOyJiPzxd2i4DAOHRgt63sMCx3aYbXB+T 98t0gLxV3iivk7+SV8rL5RXyKnm1/LVMrzD/k7xLzpXpT1oLZNn/D2yX98q1bLsBgIhoEacbG8+1RY15 +oi8Sf5EfkEeLHeQr5CryakyfW12jNWi7+h/Oz3sa5JM7xxZW75W7ioPl1+Vl8i/yCdlWQbMw/daJQAg Elq868tHC4sZY/q0vFl+S35IpjeGripDPr5Xnzs5Rb5U7ixnyfPknXKRLJsBxjFdy3F2uQGg6WjBHlRY wBjDZ+RvZLopNf0gXV22buNV5qXkRnJ/+R05R5bNC5tr+q3XOnZJAaCJaJGOkf9pixaba/qtQbpH4Ei5 qZxslxBK0HySy8s3yS/JdN9F2VyxWe5rlxAAmoQWZ/oWxH2FxYrNMd1ceIrcWk6xSwY9oDkmV5F7yv+Q j8uy2eNgTb8lsqsGAANHC3LHwgLFwfu/8lNyEznWLhNUjGad7o14izxTcv9Oc/yz5LHSAINGC/G4wsLE wfiw/Jp8jeSGr4aga/Fi+Q75c5keNFR27bAe0/xfa5cGAOpEiy99lS09orVscWL1pucWpBvzeP1vEHSt 1pWfkffIsmuK1fsBuxwAUAdadCvJ9OCdsgWJ1Zi+8pf+Vr6N5M8MwdE1TL99OFCmZ1iUXW+szm/bZQCA KtFiSw/F4fvq9Zh+jfp9+UppVwByQ9c2PXRqDzlblvUA++9v5SS7BADQb7TA9issOKzO9HTMdDCzyUNb 0DVPh4d95B9kWTewf6ZHlM+w0QNAv9DCOqGw0LD/3iBnSv7cAH9HXZgmPyHTTa1lncH+uIWNHAB6QYsp mR63WrbQsDfTv3DSD4SpNm6AUtSRDeTZsqxH2LvvsVEDwGjQIpoo03sEyhYYjt6L5eY2ZoCOUW/SC93e I++QZd3C0XuMjRkAukGLJz0K98HCYsLefEr+s1zaRgzQE+pS+prmObKsbzg6+QYFQDdo0awj5xcWEY7e dPPaDjZagL6jfk2W6U9b6R0hZR3E7vyFrOx17ADZoIWSnhZYtoiwOy+Q69pYASpHfUu+XaZXdZd1Ejv3 FjnBRgsAHi2Q9Bz8ssWDnfvvcjkbKcBAUAdfJdPryss6ip2Znsi5jI0UAJaghbFXYaFg96ZH/vIgGGgU 6uRLJY9wH73pLaQr2TgBQAvi/YUFgp2bnniZbmTkhU/QaNTR1eTPZFmPcXiflWvYKAHaixbCxwsLAzuX gwKEQ51dVab7a8o6jUOb/nHwMhsjQPvQAvg/hQWBnflpOd5GCBASdXhNeYV1Gjt3YxshQHtQ8T/rFgIO b7qZcSkbH0AWqNMbyd9bx7EzN7XxAeSPCn+8WwA4tBfKFW10AFmijr9R8sr6zn2ljQ4gX1R0Dgud+SfJ rx+hVajz75XpteplawKfL493h3xRwfkzxMg+I3e1kQG0DvV/vPxXWw84vPx5AvJDxeYGx5H9nOSRsABC ayF9o+I6Wxs4tBvayADio0Lz1cnhvVZOt3EBQAGtjR1lenla2drBxb7UxgUQFxWZhzINbXogy0wbFQAM gdbJWHmKrRt8oem+jxk2LoB4qMA87nlovyl58BJAF2jNpDfZ/sXWED7f9LbQ5W1UAHFQcXmRVLkPSm5U AugBraFDC2sKn/MRyfNaIA4qLK+oLvcEaVMCgF7QWlpJ/tbWFj7nHZLfXkLzUVHTrwzLStxmH5DcyQxQ AVpbhxTWGi72BmkTAmggKujycr4VFhebbtSyCQFAFWiNrSxvtTWHi73AxgPQLFTOiTL9fb6suG30Sfka Gw8A1IDW3FGFNYjnn/FVGw1AM1ApkzcXStp2z5O8URJgAGjtbSAftrWI559xpI0GYPCokOkHZFlR2+he NhYAGBBah2Pk2YV12XbfbqMBGBwqYrrzv6ygbfNOuaqNBQAagNbkHoU12nZfYWMBqB8VcD9XyLb6LWlT AYAmobWZ3klxt63VNpueBsmDnaB+VLzXForYZt9pIwGAhqJ1mvxeYd221XvlWBsLQPWocOmBKYusgG31 IbmWjQQAAqA1e0BhDbfVK2wcANWisqWXwNxfKF8bvUzyJDWAgGjtbijTexfK1nZb/JKNA6A6VLRLXfHa 5rE2CgAIitbxUvLGwrpuo++ycQD0HxXsOFe4tsmrqAEyQms6vTW2bK23xfVtFAD9Q8Xa0RWtTT4l17FR AEBGaG1/oLDW22Z6Iu0kGwVA76hQ6WtJZWVrg3+SS9soACBDtMa3Kaz5tvkbGwNAb6hM6Ylp9xXK1SYv lDYJAMgZrfW1ZPptYtlekLsn2BgARo+K9J+uWG3xZBsBALQErfsp8q+FfaBN7mhjAOgeFeggV6i2eJiN AABahtZ/+ur41YX9oE2uaGMA6BwVZz1XpLa4m40AAFqM9oIfuL2hDc6RNgGADlBhxslHrUBtcksbAQBA 2gtPdntEG/yaxQcYGRXmXFegNriRxQcA+P9obzjK7RVtkPsZYGRUlH1dcXJ3vlzT4gMAvADtEe8v7Blt cZrFB3ghKsgMV5jcTV+hmm7xAQCGRHvFPoW9ow3+zqIDvBAV5HZXmJx9XC5n0QEARkR7xjsKe0gbPMqi AzyHinGiK0rOphs6+XUbAHSN9o5dCntJG9zQogP8fQG8yhUkZ9NhYapFBwDoGu0hMwt7Su4+LMdYdGgz KkL6CuU8K0bupj9D8JsFAOgZ7SW7FvaW3D3dYkObURHOcsXI1XSDI/csAEDf0J6yR2GPyV2eU9NmVIBt XSFyNX11cmWLDQDQN7S37F/Ya3L2aTneYkOb0IWfIJ+1IuTsIslzFgCgMrTHHFrYc3L2bIsMbUIX/oeu CLnKExwBoHK01xzj9p5c3doiQxvQBd/GFSBX+ZsbANSG9px/d3tQjqb7wcZZZMgZXej06tYn7cLnLG+d BIDa0d7zU7cX5eg3LC7kjC70qe7C5+hhFhcAoFa0/yRvKOxHubqZRYYc0QXeyF3wHP2SxQUAGAjah8bL ewr7Uo4+IC0xZIcu7t8KFztHL7CoAAADRfvRsjJ9pbtsr8rFoy0u5IQu7BHuQufmH6WlBQAYPNqT1i/s UbnKG39zQhc0nXTLLnQuprt2l7a4AACNQXvTzoW9Kkevt6iQA7qgl7oLnJvrWFQAgMahPeqTbs/KzZkW FSKjC7mVu7C5ubNFBQBoLNqr/sPtXTmZHhs91qJCRHQBk+nVpGUXOAePsagAAI1G+1VyTmH/ys0TLSpE RBfwSHdBc/JSiwkAEALtW+l+svR+m7I9LQe5ATIiunBT3IXMyYckjyYFgHBo73pdYS/LzV9aTIiELtwP 3IXMSd4+CQBh0R72Mben5eTrLSZEQBdsXXcBc3J3iwkAEBbtZRe7vS0X77OIEAFdsN+7C5iL37SIAACh 0X6WHh/9eGF/y8kDLSY0GV2obd2Fy8U7pKUEAIiP9rRcnwS5QHKfWdPRRZpbuGg5uYpFBADIBu1th7q9 Lhc/axGhiegC7esuWC7uaREBALJDe9zlbs/LxSkWEZqELswY+WzhQuXiTy0iAECWaJ+bLHN8s+W3LSI0 CV2YHL+mM0+Ot4gAANmive4Nhb0vJ1e2iNAEdEHS3bY5Pj3s1RYRACB7tOed6vbAHDzf4kET0AU5zl2g HPySxQMAaAXa99Kflh8s7IO5yMP2moAuxCR3YXLwPmkJAQDag/a+jQp7YS5eZvFgkOhCnOguTA6ub/EA AFqH9sDj3Z6Ygy+1eDAIdAFy/O3C5y0eAEAr0T6YvL+wL+bgFRYPBoEuwAnugkT3AWnpAADai/bCHP80 sbbFgzrR4Ce6C5GDm1g8gK5Qd2bIo+Ql8jaZvpKbvtc+CNPTVn8nfyJ3k5PsYwJ0hbrzZVm2V0b1UosG daLBH+suRHS/btEAOkKdSX5EPmEdarJ/kK+0jw7QEepM+tZEOvyWdSqqq1k8qAMNfJzM6bkLz0heVAId o77sLp+0/kTyarm6xQAYEfVl60J/cpCn99aJBn6YuwDRfatFAxgR9eXrrj8R3c7iAIyI+nKR6090l7No UCUadDL9i7zsIkT0aosGMCzqSvr17G8K3YnukRYNYFjUlWVcd6J7ukWDKtGg93CDjy7PGYeOUFcucN3J QX67Bh2hrqT7dco6FFVuBq4aDTmn7+Z+xmIBDIu68inXnZxcx2ICDIu6kp6CW9ahiM6yWFAFGvAWbuCR fVqOsWgAQ6KerF7oTY7eZlEBhkVdeZ3rTmQXSEsGfUfDvaEw7Oi+zWIBDIu6cqXrTo7uaHEBhkVdudR1 J7J7WizoJxpsTv/K+oPFAhgWdWUD151cfcQiAwyLurKi605k77NY0E802O+6QUd2A4sFMCzqyimuOznL A22gI9SVk113Iru5xYJ+oIHm9Bjo8y0WwIioL4+5/uQsN4FBR6gr42UuD++70mJBP9BAD3UDjuwKFgtg WNSVZV13cvd2iw4wIurLh1x/IrusxYJe0TBz+VfWv1kkgBFRX9Zz/cndpy06wIioL8kI71HpxOMtFvSC BpnT12gmWyyAEVFftnf9aYOWHmBk1Jf0TpWyHkWTr1j2Aw0xl6+UHWORADpCnTnIdagNTrT4AB2hztzr OhTVnSwSjAYNMJfnh6ebc3gbJXSFOsOBAWAE1Jk3uw5F9WaLBKNBA/ykG2hUP26RADpGveHAANAB6s0d rkdRXckiQbdoeI+7YUZ0oRxrkQA6Rr3hwADQAerNNq5HUT3BIkE3aHCbuUFGld8uwKhQdzgwAHSIunOn 61JE51sc6AYN7lw3yIhy7wKMGnWHAwNAh6g7b3JdiurrLRJ0ggaWnuJVNsho8s0IGDXqDwcGgC5Qf+53 fYroZRYHOkEDe5cbYFTZ/GDUqD8cGAC6QP3ZxfUpqqyDTtGwbnHDi+hXLA7AqFCHODAAdIk6NM91KqL7 WRwYDg1qmhtcVKdZJIBRoQ5xYADoEnXoYNepiN5mcWA4NKjD3eAieq7FARg16hEHBoAuUYfGyhzeZLmc RYKh0JByeMzn2hYHYNSoRxwYAEaBevQF16uI8pX84dCApruBRfQWiwPQE+oSBwaAUaAeTXW9iuh9FgfK 0ICOdgOL6HYWB6An1CUODACjRF260HUrotMtDng0nLluWNGcZ1EAekZ94sAAMErUpQ1ctyI6y+JAEQ0m hz9H8Dcn6BvqEwcGgB5Qn+5y/Yrm/RYFimgwR7lBRXQpiwPQM+oTBwaAHlCf9nL9iihvsPRoKPe4IUXz ZxYFoC+oUxwYAHpAfUpfsSzrWSSPsDiQ0ECWdQOK6CssDkBfUKc4MAD0iDp1hutYNP9qUSChgUR/MtfD FgWgb6hXHBgAekSdWtN1LKJTLA5oGDe54UTzSIsC0DfUKw4MAH1AvYp+8+NeFqXdaBAT3GAiuozFAegb 6hUHBoA+oF691/UsmtdYlHajQWzvBhPN6y0KQF9RtzgwAPSB1CvXs4iOsTjtRUP4iRtKNHe0KAB9Rd3i wADQJ9Sty13Xovkai9JeNIT5bijR5NQHlaBucWAA6BPq1taua9H8ukVpJxrAGm4g0TzHogD0HfWLAwNA n1C3kpFfe/2YRWknGsCRbiDRfJVFAeg76hcHBoA+on593/UtmstalPah8P/jhhHJBRYDoBLUMQ4MAH1E /drM9S2a77Eo7ULBoz+y80yLAlAJ6hgHBoA+o44tcJ2L5GUWo10o+OZuENHkUdBQKeoYBwaAPqOOnek6 F8mFFqNdKPgX3CAiuVBaEoBqUMc4MAD0GXXsla5z0VzdorQHhb7dDSGSP7QYAJWhnnFgAOgz6lgy8rcl PmBR2oECj3cDiOaWFgWgMtQzDgwAFaCened6F8l2PSZagaPfvzDWogBUhnrGgQGgAtSzN7neRXKRxWgH CnycG0Akr7YYAJWirnFgAKgA9Sz6b7lXtSj5o7B/dOEjubfFAKgUdY0DA0BFqGs3ue5Fcj+LkTcKmiwb QBSnWhSASlHXODAAVIS69gHXvUj+zGLkjYK+xAWP5IMWA6By1DcODAAVoa6t7LoXyXkWI28U9H0ueCT/ 1WIAVI76xoEBoELUt6dc/yK5lMXIF4W8wIWO5OYWA6By1DcODAAVor6d7foXyddbjHxRyCdc6EjydUqo DfWNAwNAhahvb3H9i+TnLEaeKOBEFziSt1oMgFpQ5zgwAFSI+raU618kf2cx8kQBN3WBIznLYgDUgjrH gQGgYtS5ua6DUcz7RVQKeIQLHMmNLAZALahzHBgAKkad+6brYCSnWYz8ULhLXNhIjrEYALWgznFgAKgY dS7yY6K3sRj5oXCPu7BR/LNFAKgN9Y4DA0DFqHNTXAcjeZzFyAsFG+eCRvIEiwFQG+odBwaAGlDv5rke RvE6i5AXCra2CxrJ/L/vCo1DvePAAFAD6t35rodRfNoi5IWCvdsFjWT+T9SCxqHecWAAqAH17kDXw0hO sBj5oFCnupBRbMczu6FxqHscGABqQL1b0/UwkutajHxQqFtcyCheYhEAakXd48AAUAPq3RjXw0i+22Lk g0LNdyGjeJhFAKgVdY8DA0BNqHt3uS5G8WsWIQ8UaIILGMmNLQZArah7HBgAakLdO9N1MYo3WoQ8UKCX uICRZAODgaDucWAAqAl1by/XxSg+ZRHyQIFmuoBRzOtCQCjUPw4MADWh7kX+h20+b1JWmE+5cFG8xiIA 1I76x4EBoCbUvcgPF5xuMeKjMBe7cFHM+33j0GjUPw4MADWi/kV9fcEbLEJ8FOZuFy6KO1gEgNpR/zgw ANSI+neV62MUP2QR4qMwC124KK5qEQBqR/3jwABQI+rfZ10fo/gtixAbBRnvgkUynxtJAqPrMFWuI7eR B7TINh4YyuaQs1vL9J6dqVZ3GCC6DjvJsl423d9ahNgoyHQXLIpPWgQYAJr/uvIE+ZBdD8TcfUAeJ9e2 ZQA1o9mvYdcimo9ahNgoyGtdsCjmcWILhua+qry0cB0Q2+jP5Iq2LKAmNPOwDxm0CLFRkH19sCCeZhGg JjTzo901QGy7R9jygJrQzEO+xsA+fmwU5PM+WBAPsghQMZp1evHLeYXZI+Jzni1ttUDVaNZzCrMPo338 2ChI1B8E/2ARoGI06+vd7BHx+V5uywUqRrMO+TPLPn5sFCTqa61XtghQIZrzqW7uiFjuF23ZQIVozse4 uYfQPn5sFOQRHyyI4y0CVIRmvLubOSIO7462fKAiNOOQ+5J9/NgoyCIfLICL7ONDRWjGyScLM0fEkX3E lhBUhGa8iZt5CO3jx0UhxvpQQXzQIkBFaMYfdTNHxM78R1tGUAGa7/Ju3iG0jx8XhZjiQwXxBosAFaEZ z3MzR8TOfNiWEVSA5hvy6cT28eOiEDN8qCD+wCJABWi+q7t5I2J3clN2hWi+4f6Ubh89LgoR8m9B8jMW ASpA8+UBTYi9eaQtJ6gAzTfca67to8dFIbb3oYJ4gEWACtB8L3fzRsTuvNCWE1SA5nubm3fjtY8eF4XY x4cK4rYWASpA8/2rmzciducfbTlBBWi+v3Dzbrz20eOiEB/zoYK4kUWACtB8n3LzRsTufNyWE1SA5num m3fjtY8eF4U4yYcK4nSLABWg+S5080bE7pxvywkqQPP9tJt347WPHheF+K4PFcSlLQJUgObLgQGxNzkw VIjme4ibd+O1jx4XhbjQhwriOIsAFaD5cmBA7E0ODBWi+e7q5t147aPHRSGu86GCaAmgCjRfDgyIvcmB oUI03y3dvBuvffS4KMStPlQAeY9ExWjGHBgQe5MDQ4Vovhu7eTde++hxUYg7fagAPm0fHypCM+bAgNib HBgqRPNd08278dpHj4tCzPWhAshz2itGM+bAgNibHBgqRPNd0c278dpHj4tChHu8pvybfXyoCM2YAwNi b3JgqBDNd6qbd+O1jx4XhXjahwrgbfbxoSI0Yw4MiL3JgaFCNN/Jbt6N1z56XBRigQ8VwN/bx4eK0Iw5 MCD2JgeGCtF8J7h5N1776HFRiIg/GH5tHx8qQjPmwIDYmxwYKkTzHefm3Xjto8dFIcK9U1z+yj4+VIRm zIEBsTc5MFSI5jvGzbvx2kePS1moAP7CPj5UhGbMgQGxNzkwVIjmy4GhbspCBfBS+/hQEZoxBwbE3uTA UCGab7ifX/bR41IWKoAX28eHitCMOTAg9iYHhgrRfDkw1E1ZqAD+l318qAjNmAMDYm9yYKgQzZcDQ92U hQrgZfbxoSI0Yw4MiL3JgaFCNF/uYaibslABvNw+PlSEZsyBAbE3OTBUiObLgaFuFCLi1yr/2z4+VIRm zIEBsTc5MFSI5jvWzbvx2kePi0JE/MEw2z4+VIRmzIEBsTc5MFSI5suDm+pGIeb7UAG8xT4+VIRmzIEB sTc5MFSI5jvRzbvx2kePi0I85UMF8K/28aEiNGMODIi9yYGhQjTfpd28G6999LgoxKM+VADvs48PFaEZ c2BA7E0ODBWi+U5z82689tHjohD3+1ABfMw+PlSEZsyBAbE3OTBUiOY73c278dpHj4tCzPGhAvisfXyo CM2YAwNib3JgqBDNdx0378ZrHz0uCnGTDxVB+/hQEZoxBwbE3uTAUCGa72Zu3o3XPnpcFOKXPlQQx1gE qADNlwMDYm9yYKgQzXc7N+/Gax89LgrxUx8qiBMsAlSA5suBAbE3OTBUiOa7p5t347WPHheF+IYPFcQX WwSoAM2XAwNib3JgqBDN9yNu3o3XPnpcFOKzPlQQ17AIUAGaLwcGxN7kwFAhmu9Jbt6N1z56XBTiwz5U EDe3CFABmm/E53MgNsm5tpygAjTfH7l5N1776HFRiHf6UEHc2SJABWi+/+PmjYjdeaMtJ6gAzfdaN+/G ax89LgqxlQ8VxA9bBKgAzfd8N29E7M5zbDlBBWi+d7l5N1776HFRiPV8qCCebBGgAjTfd7t5I2J37mbL CSpA833azbvx2kePi0Ks5EMF8QKLABWg+YZ7sQtiw5xsywn6jGabLJt5o7WPHxeFmORDBfGPFgEqQjP+ i5s5InbmH2wZQQVoviF/btnHj4tChDypyScsAlSEZryFmzkiduarbRlBBWi+q7p5h9A+fmwUZL4PFkRL AFWhGc92M0fE4b3Glg9UhGb8D27mIbSPHxsFudcHC+JSFgEqQjMO90Y4xAG7pi0fqAjN+EA38xDax4+N glzvgwVxLYsAFaI5v9XNHRHL3d6WDVSI5nyKm3sI7ePHRkG+54MFcQeLABWjWf+Lmz0iPt+P23KBitGs r3KzD6F9/NgoyD/7YEH8J4sANaB57+bmj4iLfZstE6gBzfsBN/8Q2sePjYLs6oMFkSep1Yxmvr68vXAN ENvsHPlSWx5QE+4ahNE+fmwUZGMfLIhzLALUjGb/dvl44Vogtsn0cjbeZzMANPeoD5VbaBFioyDTXLAo LrAIMCB0DdaSn5J3y2dl2XVCjG7qdur4MZJX6w8QzX9DWXaNmu69FiE2CjLGBYvkJIsBDUDXI3Vpcos8 QJb1MmfL5pCz1m5oAroe+8iyXjbdqyxCfBQm3Is8zPUsAkDtqH+tPDBYfIDaUf9Oc32MYj4vTFSYP7hw UdzbIgDUjvrHgQGgRtS/W1wfo7iPRYiPwpztwkXxGxYBoHbUPw4MADWi/i1wfYziphYhPgrzERcuin+y CAC1o/5xYACoCXVvKdfFSL7YYsRHYbZy4aK4yCIA1I76x4EBoCbUvc1cFyNpKTJAYVZy4SI5zWIA1Iq6 x4EBoCbUvY+6LkbxIYuQBwoU+auVW1sMgFpR9zgwANSEunex62IUL7cI+aBQj7mQUTzeIgDUirrHgQGg JtS9J1wXo3icRcgHhQr5BjD5e4sAUCvqHgcGgBpQ7ya6HkYyvzcrK9SnXcgocuMjDAR1jwMDQA2od5u7 HkZyFYuRDwq1vQsZyZUsBkBtqHccGABqQL2b5XoYyTEWIx8UakUXMpLvsBgAtaHecWAAqAH1brbrYRTn WoS8ULBkWeAI/sBiANSGeseBAaAG1LtFrodRvMAi5IfC3eXCRvERiwBQG+odBwaAilHnVnUdjOShFiM/ FO67Lmwkl7IYALWgznFgAKgYdW5/18FIbmIx8kPh3uPCRnI7iwFQC+ocBwaAilHnLnEdjOQki5EfCrem CxvJ0y0GQC2ocxwYACpGnZvvOhjFeRYhTxQw8iOi83peNzQedY4DA0CFqG+ruP5F8lKLkS8KGfXGx+QU iwFQOeobBwaAClHfDnL9i2S+NzwuQSG/7kJH8m0WA6By1DcODAAVor5d4/oXyfUtRr4o5Ftd6EiebzEA Kkd948AAUBHqWuQ/kSfHWZR8UchlXehILrAYAJWjvnFgAKgIde3lrnuR/JvFyB+FjXpXavIlFgOgUtQ1 DgwAFaGuneS6F8nTLEb+KOwVLnwkj7YYAJWirnFgAKgIdW2u614k83ul9VAo7CEufCTvtBgAlaKucWAA qAD1LPKfxpPLWJT8Udg1XPhotudiwcBQzzgwAFSAenaw610kn7AY7UCBk1HfDpbcx6IAVIZ6xoEBoALU s5td7yL5Y4vRHhT6WjeESN5gMQAqQz3jwADQZ9SxSa5z0Wzf84AU+oNuCNGcYFEAKkEd48AA0GfUsd1d 56I51aK0B4VezQ0hmrtYFIBKUMc4MAD0GXUs8tMdH7MY7UPhF7hhRPJaiwFQCeoYBwaAPqJ+TXB9i+a3 LEr7UPifu2FEc6JFAeg76hcHBoA+on5F/3PEGy1K+1D4d7hhRHNPiwLQd9QvDgwAfUT9usH1LZrtvXdO 4Zdxw4jmzRYFoO+oXxwYAPqEurW061o0b7Mo7UVDuN8NJZrtu2MVakHd4sAA0CfUrcgPa0p+0qK0Fw3h C24o0TzCogD0FXWLAwNAn1C37nJdi+aaFqW9aAgbuqFE80GLAtBX1C0ODAB9QL2a4XoWzWctSrvRIJIL C4OJ6LoWB6BvqFccGAD6gHp1iutZNL9vUUDDOM8NJ5pnWhSAvqFecWAA6BF1Khn5mT/JLS0OaBjbu+FE dKzFAegL6hQHBoAeUae2dR2LKD9flqBhjHPDiegeFgegL6hTHBgAekSd+rXrWDSvtCiwBA0l8tsrk3+x KAB9QZ3iwADQA+rTcq5fEd3V4sASNJR3uiFFdG2LA9Az6hMHBoAeUJ+if20/ySsIPBpK9HeUJ7mTFfqG +sSBAWCUqEvJ6N/Am21xwKPh/NYNK6KcBqEvqEscGABGibq0m+tWRHlf0VBoOO9yw4ro4RYHoCfUJQ4M AKNEXbrDdSui/AN0KNJw3LAi+qTFAegJdYkDA8AoUI82cr2K6PUWB4ZCQ/pvN7SI7mRxAEaNesSBAWAU qEeXuV5FdBeLA0OhIe3khhbRORYHYNSoRxwYALpEHVrBdSqq4ywSDIWGNNYNLaqbWiSAUaEOcWAA6BJ1 6BuuUxH9ucWBkdCw/sMNL6LXWhyAUaEOcWAA6ILUH9enqG5hkWAkNKzN3fCiupZFAuga9YcDA0AXqD+f dX2KaHpRliWCjtDAnioMMKoXWRyArlF/ODAAdIi6M951KapfsUjQKRracW6IUV3FIgF0hbrDgQGgQ9Sd T7guRXV1iwSdoqGt6IYY1f+0SABdoe5wYADoAPUm3Sy/qNCjqN5pkaBbNLyb3TCjurJFAugY9YYDA0AH qDcfcz2K6v4WCbpFw5vphhnVn1okgI5RbzgwAIyAOjNO5vDbheR4iwXdouGNkbkUYTWLBdAR6gwHBoAR UGdmuQ5F9ccWCUaLhvhlN9SoXmKRADpCncnhbXvdyr+woGPUlxzeP7TE9SwWjBYNcbobamQpBHSM+pLL 80g61qIDdIQ6c5LvUFD/ZpGgVzTM37rhRvUGiwQwIupLToflTnzMogOMiPryYtefyO5tsaBXNMxt3XAj u6XFAhgWdSWX96p06i8sOsCIqC8/dP2J7FiLBf1AA53nBhzVeywSwIioLzm87r1T32axAYZFXVnLdSey X7ZY0C801I+6IUd2X4sFMCzqyh6uOzk70WIDDIu68hvXnciuYLGgX2ioOd0Nm14uwrvOYURST+RC603O nmORAYZFXdnGdSeyV1ks6Dca7jfdsCP7RYsFMCzqysGuOzm6rMUFGBZ15WHXnci+wmJBv9FwV3bDji6P jIaOUFcecd3JyZMtJsCwqCuHu+5ElvdGVI2GfIUbemR/ZbEAhkVdWc11Jxd/YxEBhkVdWcZ1J7ozLRpU hYa8kRt6dLe3aADDoq680XUnuo9KbnSEjlBXzi10J7rzLBZUjYb9Bzf8yKavi46xaADDoq7kcmj4k5xi sQCGRV15TaE7OXiIRYOq0bDf4IYf3RMtGsCIqC8zZOQbv34kLQ3A8KSuyLnWnRxM33riH4l1ooHfU7gA ObiWRQPoCHXmIJm+olvWpyaafqvAXeHQFerM0YUO5eAsiwZ1oaHv7C5CdP9k0QA6Rr1Jj49+p/yV9ahp Pi3PkK+yjwzQMepN+m1aWa8iO8HiQZ1o8Dl9Hzf5fosG0DXqTzo8pK8ebyp3kfsNyO3lepJnK0BPqEM3 ybK9Mqqft2hQNxr+7u5i5CCPCQWA1qO9MMcHlk2yeDAIdAFye6DNry0aAEAr0T64vNsXc5Cb2weNLkKO v2V4n8UDAGgd2gNnuz0xBydbPBgkuhA5feVmifxpAgBah/a+Q9xemIOfs3gwaHQxZrqLk4M3WTwAgFag fW8Vtw/mIt+MaBK6IHe7C5SDH7d4AADZoz3vf90emINHWTxoCrooW7uLlIsvs4gAANmive4zbu/LwfRg tbEWEZqELswthQuVi+n+DB4jCgDZoj1u88Kel5MHW0RoGro4G7uLlYvfsYgAAFmh/W2CfLKw3+XiY9JS QiPRBbq0cMFycjeLCACQDdrbfu72ulycaRGhqegiTXcXLSdXtpgAAOHRnvZ+t8fl4m0WEZqOLtap7uLl 4h3SUgIAxEV72QaFvS03eStrFHSxJrqLl5PftpgAACHRPpbuW3iisK/l5EUWE6Kgi/YBdxFzch+LCQAQ Du1hV7k9LSeXt5gQCV24B9yFzMn1LCYAQBi0dx3r9rKc5BHQUdHF28JdzJxMX0PiVakAEAbtWTsU9rDc fEbyzJzI6ALm+jXL5GyLCQDQaLRfreb2r9x8u0WFqOgiLucuam6eZlEBABqJ9ql0k+PDhX0rN2+0qBAd Xcx/cRc3Nw+yqAAAjUN71LVuz8rNNSwqREcXM5neyVB2oXNxS4sLANAYtDed7vaq3DzRokIu6KK+1l3k HOWUCwCNQXvSYW6Pys108zk3OuaILuyPCxc6R+fJpS0uAMDA0F60U2FvytU3WlzIDV3cSXJR4WLn6J8l J14AGBjag15e2JNy9UKLC7mii7yHu+g5eqXFBQCoFe0/q8jc/2GW5Le5bUAX+r/dhc/RsywuAEAtaN+Z Ih8v7EO5urdFhtzRxc792QxL5O5dAKgF7Tfj5F2F/SdXr7PI0BZ00d/nSpCr/2SRAQAqQfvMGHlTYd/J 2eUsNrQJXfjZrgi5+o8WGQCg72iP+aXbc3L1fRYZ2oYuflv+NJHcy2IDAPQN7S0Xur0mV/lTRNtRCfZz pcjZXSw2AEDPaE85x+0xOTvNYkObURGucMXI2Z0tNgDAqNFecrbbW3L2XRYb2o7KsLRcWChH7u5k0QEA ukZ7yHfdnpKzF1lsgMWoFG92JcndmRYdAKBjtHe06TcLz8iJFh3gOVSMMwpFaYPvsOgAACOiPaNN9ywk t7DoAM9H5UjfJb6/UJY2uI/FBwAYEu0Vbfk2xBK/aNEBylFJ1nalaYMftPgAAM9D+0P6h1RbnrOwxD9b fIDhUVkOduVpg7MsPgDA39G+kB733JYnOBZd0UYAMDIqTNt+/Zb8N4sPAC1H+0F6kVQb3g3h5Xk10B0q TTpZP1YoUVv8iY0AAFqK9oH0iuo2vHXS+3UbAUB3qDwvc2Vqi7+W42wMANAitPZfLhfZXtAm50ibAsAo UIEOLBSqTd4teRQqQIvQmt+psAe0zRVsDACjR0X6vitWW3xWvszGAAAZo7V+WGHtt83tbAwAvaEyJf9a KFfb3NFGAQAZojV+ulvzbfJYGwNAf1Cp0quw2/h3vSV+3EYBAJmgdT1BXltY523zchsFQH9RubZwZWub P5Y2DQCIjNbyavIRW9tt9CE53sYB0H9UsEMLhWujf5bcDAkQGK3hHQpruq3OsHEAVIeK9j1XvLaZXgX+ GhsHAARCa/fYwlpuq9zkCPWhwrXxcaneI2wcANBwtF7T/QpXFdZvWz3cRgJQDyrdZPlEoYRt9SLJQ54A GozW6AaS/er8M75rIwGoF5VvDVfGtpoeoc3zGgAaiNbm+wtrtc3OtpEADAaVcCtXyjb7IRsLAAwYrcf0 J4ifF9Znm50rJ9hoAAaHirh/oZht9zI5yUYDAANAa3Bz+aStybabbtLmddXQHFTIzxQK2nbnyy1tNABQ I1p77EXPd2MbDUBzUDHPckVtu1+TNh0AqBKttfRK6tts7eFi32zjAWgeKihfW3q+D8gNbDwAUAFaY4cU 1hwu9r02HoBmopKOkX8slBYX+1lpUwKAfqA1tbycbWsMn3OWjQig2aisE+X9hfLiYu+VG9qYAKAHtJYO LqwtfM6v2ogAYqDSvlhyl3K5p8gxNioA6AKtnRmSJ82W+yMbE0AsVN7pckGhzPic6alzW9moAGAEtF6S R9v6wRd6iY0KICYq8UtcqfH5XiCXsXEBQAlaI6+R6eFDZWsIzz/jOmnTAgiMipye415WcnzOQ21cAGBo XSwjzy2sE3yhv5f8iRPyQYXetFBwLDfdFMlrs6H1aB0kD7d1gUObvpE21sYGkA8q9qsKRceh/S+5go0N oFWo+9vIh20t4NCmh1SNt7EB5IcKnv4WWVZ+fKEnSTYEaAXq+lryN9Z9HN45kr0B8kdFf3Wh+Di8i+QH pU0PIC/U7fQV7B/Ksv7jC+U3C9AuVPhXFhYAjuzjcjcbH0B41Of0gLcvWb+xM9M9CxwWoH2o+C8vLATs zHvkm2yEAOFQf8fJWdZn7Nz0bQhucIT2ogWwnky/di9bIDi0t8utbYwAjUd9HSs/Jlnv3Zues8BXJwG0 ENaQz9rCwO68Q25rowRoHOrnePkJyUFhdF4ibZoAkDaVFeVjtkCwe++Tb7dxAgwc9XGyTG9pLesrdibv hgAoQ4tjiry7sFiwe+fJgyR/64SBoO6tIL8py/qJnctbJwGGQ4sk/foy3dxTtoCwc9Ovf4+XvKcCakFd 20heJsv6iN05y8YKAMOhxZK8uLB4sDfTC67Wt/EC9A31KrmbTPfSlHUPu/e9Nl4A6BQtnK+7hYS9eZd8 t+TPFdAT6tBy8gS5UJZ1DUfnm23EANAtWkCfdAsK+2P6G/OaNmaAEVFfktvKX8uyTuHoTQevjW3UADBa tJB2Lyws7K/ptw4Hyok2boDnoW7MkKfIBbKsQ9ibD8oVbdwA0CtaUJtLvsddrb+QW0ubOrQVdWBpebBM B8qyrmB/nC0n2NgBoF9oYa0kH7CFhtWZDmZnyc1s9NACdL0nyPTbvBtkWS+wv37HRg8AVaBFlp5D/6vC osNqTb+GPlOm3/DYVYBc0DWdJNMh4VpZdv2xGg+3SwAAVaMF9xW3ALF6028ezpVvkuPsUkAwdO2WlenP DTfLsuuM1bqdXQoAqAstvL3dQsR6TQ/Yer9c2S4JNBBdnzEyvRn2JDlXll1LrN6H5Ay7LABQN1qA6ely T9uCxMH5lDxbvkUuZZcHBoSuwSoyPSL8Gll2vbBeL5fj7fIAwKDQQlxK3mgLE5th+pfsN2T688UUu1RQ EZrxqnJ/md5sOF+WXRMcjMfaZQKApqCFebJbqNgc00uxzpcHyDUl7/YfJZrdRJluQp0l09fy+Lpxc+V+ BYCmogU60y1YbK7pO/7pGxh7ybUkN1I6NJP027PN5Edler/KE7Jsltgs58gV7DICQFPRQl1Z8jKcmD4u r5THyZ3k6jL7v/0qY3pQ0oZyH5neoXKL5MmKMU3Xz64sADSetGDl6baAMb7p7/LpX23nyWNkenbAJnJ5 2egDhT5fMj3vIN1nsIVMj+JOj1q+SvIgsrx8u112AIiGFvDb3ILGPE1/x0+/nbhNXia/LT8tD5G7yi3l xjLdP7GinCony/R0w/QwsPTVw+SSH/DJJf+3sTL9d9K9A+k3AdPkdLmOTH8u2E7uKT8i01cXfyTTg5DS n1z4Bk87TL3jfRAA0dFCTq/iTb/iLVvoiIi9+EXbagAgF7Sw06+yyxY8ImK3PiO3sO0FAHJDCzz93ftR W/CIiKPxIskr4QFyRws9/U06/Y27bCNARBzOd9lWAgBtQQt/G/lsYSNARBzK6+Q02z4AoG1oA0h3yZ9j GwIiYpnvsy0DANqONoT01bh0E1PZZoGI7TT9VmE52yYAABajjWG8TI8qLts4ELFd7m1bAwBAOdooXi3T u+vLNhFEzNsL5dK2HQAADI82jGR6UmDZhoKI+fmkfKNtAQAA3aENJD3//wbbUBAxT0+UvHIdAHpHm0l6 HwFfwUTMyxvlGrbMAQD6gzaW9AKi9JbBso0HEeOYvhHFmyUBoFq00aQ/U1xjGw8ixvJzkj8/AEB9aNN5 g3zQNiFEbLbp/Q/L2/IFAKgfbUIHyYW2KSFis7xNvsKWKwDAYNGGlO5v+IJtUIg4eB+TM22JAgA0C21Q U+VZtmEhYv0ukAfbkgQAaDbasFaR6W+mZRsaIlbjUXKsLUMAgDho81pbXmmbGSJWY/rmwwRbdgAAcdFm 9jL5K9vcELE/pic0TrZlBgCQD9rc1pVX2GaHiKPz83KSLSsAgHzRZreG/Jltfog4sumry7Mkf3oAgPah zW8F+S1ZtkEi4vlnzJOHSJ7OCACgzXCy/JTkAVCIi71T8hwFAIAytEGOke+RPHIa22r6VhFPZgQA6BRt mq+WV9smipi7X5YrWP0BAKBbtIkuL78o+XMF5ubf5N6Shy0BAPQLbarJmfJWWbb5IkbxR3I9qzYAAFSF Ntvp8ksyPTe/bENGbJrpJsb95XirMQAA1IU23+QbJI+fxiaaDrRfkatbZQEAYNBoU54kD5RzZNnmjViX P5dbSGsnAAA0Em3U6UbJT8oHZNmGjthvr5e7yHFWQwAAiIQ28PSq7WMkz3bAfjtb7iknWt0AACAHtLGv LD8u75BlPwAQRzLdL7Or5JAAANAGtOFPlfvI62TZDwbE5LPyLPl6yfMSAADaTPpBIF8nvykfl2U/OLA9 3ibTPTBrWEUAAABeiH5QpJsm95WXy0Wy7IcK5uOjMr01dRvJ66MBAGB06IfImvLDMv35ggNEfJ+QP5Zv k1PtMgMAAPQX/ZCZIQ+QF8qnZNkPJWyO6Z0Np8k3yyl2GQEAAOpFP4SWllvJ4+VNkt9CDM558lJ5qFxf 8lwEAABoLvpBtazcVn5Opof6PC3LfsDh6J0rL5DpcLCJnGTjBwAAiIt+oE2UL5Pplcanyt9JDhIj+5BM N6B+Ru4g08O4xthYAQAA2oF++I2T6Q2cW8v0r+Uz5Y0y3b1f9gM0NxfKe+VV8mSZno+xqXyxtCkBAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0hRe96P8B3TVpBCuB4QcAAAAASUVORK5C YII= iVBORw0KGgoAAAANSUhEUgAAAgwAAAIMCAYAAACZhvQPAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAAB3RJTUUH 4AoSFw0jZJCMXQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0wNi0yOFQyMjoxOTozMyswODowMD+zzSkA AAAldEVYdGRhdGU6bW9kaWZ5ADIwMTYtMTAtMThUMjM6MTM6MzUrMDg6MDCHGR6yAAAAQ3RFWHRzb2Z0 d2FyZQAvdXNyL2xvY2FsL2ltYWdlbWFnaWNrL3NoYXJlL2RvYy9JbWFnZU1hZ2ljay03Ly9pbmRleC5o dG1svbV5CgAAAGN0RVh0c3ZnOmNvbW1lbnQAIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTku MC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgzkiQCwAA ABh0RVh0VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7LwAAABh0RVh0VGh1bWI6OkltYWdlOjpIZWln aHQANTI0TcOldwAAABd0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAA1MjTeMvUqAAAAGXRFWHRUaHVtYjo6 TWltZXR5cGUAaW1hZ2UvcG5nP7JWTgAAABd0RVh0VGh1bWI6Ok1UaW1lADE0NzY4MDM2MTXW9v85AAAA EnRFWHRUaHVtYjo6U2l6ZQAyMzIyMkKWrKQgAAAAYnRFWHRUaHVtYjo6VVJJAGZpbGU6Ly8vaG9tZS93 d3dyb290L25ld3NpdGUvd3d3LmVhc3lpY29uLm5ldC9jZG4taW1nLmVhc3lpY29uLmNuL3NyYy8xMjA1 OC8xMjA1ODE2LnBuZytW3jkAADUQSURBVHhe7d15uB1lle/xzhwIkTAGkIRBAYGmgQZxYFCUqyIgCNoo AuJVwFbEAaWlabFFVFBwuNo22KAi4oQTIgiCMqiAgFEZFOkGZBCVGUKYk3t/y6xcipVKcs7Zu/au9db3 8zzff1ofe6+3qt6zc87eVX8HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 RK5CYII= iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAodSURBVHhe7Z1biF1XGcfzoDGtIl6wWBGtRdBailoVFYJgbMA+KNgHwSdHH0YzmXMyJ5kXQfSI PrT6IgpirQgKvpRaNNVaRBErmCJ4SS2Vpg8lFbVkYu9NUAT9r+bb5Jx91jRz2d/e69v794Mfk+ucvb61 frPnJHPZA9AEk8nksrW1tZvkLUeOHLlD3ifP6Of/kxv68Sl5Qj/++mg0ep/9NYD+sry8fLkO/Kd18O+S 5y2GLak/f1p++fDhw6+2VwfQD6bT6V4d7rF8LHf4t6Nex1PyCysrKy+zVw8QFx3qJR3o0/WDvlv1Os/q 5U32MACxsOcYP5o91E7eurS0tM8eFqB8jh079ka9hT+ZOcxePpAe0x4eoFwUxn4d2CdrB7gNHxmNRq+3 ywAojxSHfC5zeNuSSKBMCoijkkigLAqKo5JIoAwKjKOSSKBbCo6jkkigGwLEUUkk0C6B4qh8ZGVl5bV2 +QB+BIyj8mEiAVcCx1FJJOBDD+KoJBJolh7FUUkk0Aw9jKOSSGB39DiOSiKBnTGAOCqJBLbHgOKofHg0 Gr3Glg+wOQOM43m15r8SCbwgQ42jkkhgU4YeRyWRQBYdjO/nDsxAfZBIYI7pdPoiRfKTzGEZpNxJYAEi mZdIYAEimZdIYAEimTdFMplMXmXjASCSjPcTCcxBJAsSCcxDJAsSCcxDJAsSCcxDJPNqFieWl5dfbOMB IJK6msX3bDQAFyCSeTWLz9hoAC5AJBfVHM7zCVewAJHMeauNBeAiRHJBzeC/k8nkahsLlIg26kZt0g32 01bRY/949sAM1G/ZOKA0xuPxh7VB/07vD+vlAfvl1uBO8rwbNg4oiSqOaqM6juTn1XUMUd3B323jgBKw OBY2KkWi3/uQ/bFW0eMfr1/PgJzaGKBr6neOuh3eSfYO9U6idd9uY4Au0WYckJvGUUkkrfs7GwF0hTbh gB383AYtSCSt+qgtH7og/TNuZlO2auuRJPS4P61dR6+1ZUPb6K3xwe3cOTKe44m7r2l/bMnQJhr+tt6t 2kx7Hby75aTWeMqWDG2hwTcSRyWR+Kn1/dKWC22goTcaRyWR+Ki18fkhbZGekHvEMeM52ckTd63rrtq1 9EKta2JLBE80bJc7R117DO4kzXmVLRG80JBbiaOSSBrzAVsaeKEhtxpHJZE04ldsWeBB+j8KDTk9L8gN vw07e06ixw3/n4l6zvhmWw40jQbcyZ2jbroGud8uqzV6cCe5zZYCTaPhFhFHpa7lOSLZumnv1tfXr7Bl QJNowEXFUUkkW1fXe7NdPjSJhltkHJVEcml1nSf13OMyu3RoCg236DgqiWRzdX1/4+thOaDhhoijkkiy PiuvsUuFptBQ02cCdvlPuTvSIvmALaNV9Ph316+nazWLg3Z50BTprbAMc+eoa5EM+k6S9i99LQC7NGiK dLDSAcsNPZJpDWkttqzWKCESPT5xeJAOVDpYuaFHNK0lrcmW1xpdRqLHJQ4P0kFKByo39MimNaW12TJb o4tI9HjE4UE6QOkg5YbeB9Pa0hptua3RZiR6HOLwIB2cdIByQ++TaY1prbbs1mgjEr1+4vAgHZh0cHJD 76NprWnNtvzWSJHo8X9Vv54mJA4nhhZHZVeRLC0t7dPjNxoJcTgx1Dgq+xAJcTgx9DgqI0dCHE4Qx7wR IyEOJ4gjb6RIiMMJ4nhhI0RCHE4Qx9YsORLicII4tmeJkRCHE8SxMy2S99oYWyMXCXE4QRy7U7N7putI iMMJ4mjGLiPR4/6MOBwgjmbtKhJwIG0kcTQvkfQAi+OZ3Abj7iWSwBBHOxJJQIijXYkkEMTRjUQSAOLo ViIpGOIoQyIpEOIoSyIpCOIoUyIpAOIoWyLpEOKIIZF0AHHEkkhahDhiSiQtQByxJRJHiCO+Fsh7bEuh KYgjvsThBHHElzicII74EocTxBFf4nBCw72eOGJLHE5ouNfLJ2eHjbEkDic0XOIILnE4oeESR3CJwwkN lziCSxxOaLjEEVzicELDJY7gEocTGi5xBJc4nNBwiSO4xOGEhkscwSUOJzRc4giuwniKOBzQcIkjuMTh hIZLHMFNcejlO2xLoSk0VOIILnE4oaESR3CJwwkNlTiCSxxOaKjEEVzicEJDJY7gEocTGipxBJc4nJhM JtdpsMQRWOJwwuL41+ywMZbE4QRxxJc4nCCO+BKHE8QRX+JwgjjiSxxOEEd8icMJ4ogvcThBHPElDieI I77E4QRxxJc4nCCO+BKHE8QRX+JwgjjiSxxOEEd8icMJDfVK+Y9q0BhP4nBiNBq9RIP90+ywMZbE4YiG e3t94BhH4nBEgz00O2wM59N6D+Cdtp3QJIcOHXql3vo8nhk6BpA7hzMa7jdmB45xJA5nVldX31ofOobx Cd6tckZDvqU2dAwgd46W0KBP14ePZWvPF4nDm6NHj769PnwsW+JoEQ36i7PDx7JNcaQPA7LtA2808Dtz G4HlaXFca1sHbaDB/6G+EViexNERGvzZ3IZgORJHRywvL1+e2xAsR4uD5xxdoA1IH9ae3RjsXu4cHbO6 uvqm3MZg9xJHAWgjrqlvDHYvcRRC+hie3AZhdxJHQWhD3l/fIOxO4iiM8Xj8wdxGYfsSR4FoY26sbxS2 L3EUiu4gH8ttGLYncRSMNugT9Q3D9iSOwtEd5FO5jUN/iSMA2ii+ikkHEkcQtFGT3Aain8QRCG3Y5+ob iH4SRzC0YV/KbSQ2L3EERBvHVzNpQeIIijaPLxbnLHEERpv3ndymYjMSR3C0iT+obyo2I3H0AG0i3+rA QeLoCdrM4/XNxd1JHD1Cm/mL3CbjziSOnqFNvbe+ybgziaOHaFN/n9ts3J7E0VO0uffXNxu3J3H0GG3u qdym49Ykjp6jTX60vum4ZTeIo+foLeCZzMbjpSWOIaCNfrq28XhpN/SG5S02Qugz2uj/ZA4Abi5xDInM AcBNVBhnR6PR22x0MAS06Y/lDgMuyJ1jiGjj/1w7CLgocQwVbfw9mQOBFyWOIaPN/3bmUKDUbM7yT7kD R4fgo7nDgdw5QEyn0706DOdqh2PoEgdcRIfhjswhGarEAfPo/ewbMgdliBIH5NHBOJE5MEOSOGBzBn4X IQ64NDokg/v8dK2ZDx+BraGD8nIdmofqh6ivKo4zxAHbQgfnKh2cx+uHqW9qjX9ZXV19nS0bYOuk752u A/TP3MHqicfX19dfassF2D46QFcokt9kDldkn5BrtkSA3aNIbp45YGHVOr6anmPZsgCaI33Ang7Yb3MH r2R1zX+Un5dvsKUA+KFQPqnDdo88nzuQXaprOiXTP1PfJteIAjrF/mNxqoP4Q728Vy//rpfVgX1Wbsj0 JYUe0u+dlPfpx7+Wd+vHd6a/J78rv6lf+5pepm8Fl75f4tp4PP5silF+XH5Ev3dQ7tevv0s/v1ZerT92 pXzF0tLSPrskgIbZs+f/u5x+5OlRKsMAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAk1SURBVHhe7Z1LiGVHGYDvQsdJFPGBwYhoDIJGEd+oMAhqAmahYBaCq6gbdSPJUhCN6CLRjSiI YyQ9dW43QhODJjqGoAQjmCD4mBiUTBaSETVk4iRj4gyK8PtX36rM3LrVnX6c/5yqOt8HH/dOMz19Tv31 9Znbj3tnAL2wKZfMOrlOvUW9XX1g5uRxvRX1tN4/qd6vfnO2Lu8N7wXQMEflUt3wn1bvUs+HGHbro+pX 9f1eHv41gEbYlEO6uT+vPhY2+0E8q35J/80XhX8doGI6+aTqP/vnNvv+dfKE3l4XPgpAZSweY/xwaVPb eHS2JofDRwWogA15rX6GP5HZzDY6eWjrYwIUTydH1KeWNvAQOvnLbF1eHY4CoEB8HE7+vbJ5h5JIoFjG jiNKJFAcpcQRJRIohtLiiBIJjE6pcUSJBEaj9DiiRAKDU0scUR/JmrwyHD2AIbXFccFHiARsqTeOKJGA EfXHESUS6Jl24ogSCfREe3FEiQQOSLtxRIkE9kn7cUSJBPbIdOKIPjK7TV4Rzh5gB6YXx0InfyYS2Jmp xhElEtiWqccRJRLI0olb2SzT9U9EAsvcK8/Tz54/zmyWacqVBFYgkmWJBFYgkmWJBFYgkmV9JJvysrA6 AAqRpD5IJLAMkaQSCSQQSSqRQAKRpBIJJBDJsv7Vr47K88PqAChEsqyT28LKAASIZFknnwkrAxAgkgv6 11rkF65gBSK52KNhVQAugkii/5ttyJVhVaBInFyrXh3+NCyd/CjZMNPTyXfCakBxzOXDOqT/6JD8a49/ MLx1OLiSeE+H1YCiiHHEQY0ZSSc/e/Y4pum7wmpAESziWB2Uj2RdPhT+1rB0cufK8UxFJzeFVYDRSa8c qWNdSTblkH7cqV5JNsMqwKj4jb9THFEiGVYnvw4rAKPhN/xi4+eHlEokw+nkVDh7GAX/ZdzcYHbn8JF4 OvlJchxtCyMxl2v2dOVY9RwP3I3184ER2Ot/q7aT/27Z6uRkOGMYjL7iiBKJnU5+Hs4WBqHvOKJEYiO/ HzIg/gG5RRwXPKeO88DdyV3JsbTijeEMwRSrK0cqV5J+XZMrwhmCGUPFESWSfnTyUDgzMGPoOKJE0odf C2cFJvjvUSweF+QWfwjHe0zSwjcT5/L6cDbQO2NdOVIXx3AkHNVw1H4lcXJrOBPonVLiiC5eZYpIduti dpeFs4BeKS2OKJHsXic3h6OHXik1jiiRPLdOTujxXhKOHHqj9DiiRLKTf+X5sCyoJY4okeR8Rr0qHCn0 ho9j3C/l7k8fyTF5fziLYXFyPHtMY+p/9QB6xn8WrunKkcqVxK/B+a3nAoCeWcThN1h+4WtxypEQhxGt xBGdYiTEYURrcUSnFAlxGNFqHNEpREIcRrQeR7TlSIjDiKnEER03kl8sHUtfEocRU4sjOlYka3JYP26/ kRCHEVONI9pCJMRhxNTjiNYcCXEYQRzL1hgJcRhBHHlrioQ4jCCOna0hEuIwgjh2Z8mREIcRxLE3S4yE OIwgjv25WLP3hFUcjlwkxGEEcRzUp9VxIyEOI4ijL8eM5KfEYQFx9O04kYABfpDEYSGRVI8f4GKQuQHj wSWSaiGOoSSS6iCOoSWSaiCOsSSS4iGOsSWSYiGOUiSS4iCO0iSSYiCOUiWS0SGO0iWS0SCOWiSSwSGO 2iSSwSCOWiUSc4ijdonEDOJowadn6/LuMFHoDeJoQeIwgThakDhMII4WJA4TiKMFicOEubxja3Hzi451 SBwmLOJ4KllsrEviMIE4WpA4TCCOFiQOE4ijBYnDBOJoQeIwgThakDhMII4WJA4TiKMFicME4mhB4jCB OFrwLHFYQBwtSBwmEEcLnp1tyNvCRKE3iKMFicME4mhB4jCBOFqQOEwgjhYkDhOIowWJwwTiaEHiMGFd 3qKLSxx1Sxwm+Dic/DOz4FiPxGECcbQgcZhAHC1IHCYQRwsShwnE0YLEYQJxtCBxmEAcLUgcJhBHCxKH CcTRgsRhAnG0IHGYQBwtSBwmEEcLEocJxNGCxGECcbQgcZgwl8t1cf+eLDbWJXGYcFxeoFeO32cWHOuR OMzoZDNZbKxL4jBjLp/LLDjWopN/qW8P04Re2ZCX6iKfWVl0rEWuHKZ08q1kwbEeicOUNXljZtGxBp08 yX+rrOnklpWFxxrkyjEInTyaLDyW7xniGIK5vDWz+Fi2xDEYc/lyZgBYrme2fgwIBsLJHZkhYJmemR2T N4fJwSB08ttkCFimxDEKTp7IDAPLkjhG4ahcmhkGliWPOUZj8WPtuaFgGXLlGJVOXpcMBMuROEank6uS oWAZEkcR+J/hyQ8Ix5M4isHJ+zIDwvEkjqJw8oHMkHAciaM4nFybGRQOL3EUiZOPZYaFw0ocxXJMPpEZ GA4ncRTNXD6VGRoOI3EUD89iMpbEUQWd3JgMDu0ljmro5AvJ8NBW4qiKTr6SDBDtJI7q4NlMhpI4qoQn ixtC4qiWTr6XDBP7lTiqppMuGSj2J3FUDy91YCVxNEEndyaDxYNLHM3QyT3JcPFgEkdTdHJfMmDcv8TR HJ38Jhky7k/iaJJOHkwGjXuXOJrFycnMwHH3EkfTODmVGTruztPE0TpOHs8MHp9b4pgE/mWD8xsAt/f0 bC5vCCsITePkv5kNgNtLHJMivwkwp3+ZiHV5U1g5mASdPLayETAnV45J0skfko2AqxLHZOnk7mQz4LLE MWmcfDezKdDrH3PwpdyJc0w+mt0cyJUDlE05pJvhXLI5pi5xwEV0cnuyQaYscUCCk6szG2WKEgdsg5P7 MxtmShIH7MC0ryLEAbtgir+fzo+PwK5Zlxfrhnk4u5Fa1P+oP3HAnliTK3TznFnZTO35x9kP5FXhrAH2 gH/tdCf/yGyqVvTPBfbCcLYA+6CTyzSSX160qerXyZN6e0M4Q4AecHLzykarUSdf33qMBdA7/gf2OvnV yqYrXSe/09svqq8JZwJgiJPrdbPdrbfnn92Epbh4+qJ79PZWvb1BJQoYEf+NRSc36UbcUO/T+3/T27hh n1FP69tOqQ+rJ/TPD6j36v3j6h1637/f9/X+t9Vv6H3/UnD+9RL95v6svu362Vw+rvc/orfX6O0RvZK9 c+tqtiFX6tsun63JS9TD4YgAemY2+z9PdsdSqjH8hwAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAk1SURBVHhe7Z1LiGVHGYDvQsdJFPGBwYhoDIJGEd+oMAhqAmahYBaCq6gbdSPJUhCN6CLRjSiI YyQ9dW43QhODJjqGoAQjmCD4mBiUTBaSETVk4iRj4gyK8PtX36rM3LrVnX6c/5yqOt8HH/dOMz19Tv31 9Znbj3tnAL2wKZfMOrlOvUW9XX1g5uRxvRX1tN4/qd6vfnO2Lu8N7wXQMEflUt3wn1bvUs+HGHbro+pX 9f1eHv41gEbYlEO6uT+vPhY2+0E8q35J/80XhX8doGI6+aTqP/vnNvv+dfKE3l4XPgpAZSweY/xwaVPb eHS2JofDRwWogA15rX6GP5HZzDY6eWjrYwIUTydH1KeWNvAQOvnLbF1eHY4CoEB8HE7+vbJ5h5JIoFjG jiNKJFAcpcQRJRIohtLiiBIJjE6pcUSJBEaj9DiiRAKDU0scUR/JmrwyHD2AIbXFccFHiARsqTeOKJGA EfXHESUS6Jl24ogSCfREe3FEiQQOSLtxRIkE9kn7cUSJBPbIdOKIPjK7TV4Rzh5gB6YXx0InfyYS2Jmp xhElEtiWqccRJRLI0olb2SzT9U9EAsvcK8/Tz54/zmyWacqVBFYgkmWJBFYgkmWJBFYgkmV9JJvysrA6 AAqRpD5IJLAMkaQSCSQQSSqRQAKRpBIJJBDJsv7Vr47K88PqAChEsqyT28LKAASIZFknnwkrAxAgkgv6 11rkF65gBSK52KNhVQAugkii/5ttyJVhVaBInFyrXh3+NCyd/CjZMNPTyXfCakBxzOXDOqT/6JD8a49/ MLx1OLiSeE+H1YCiiHHEQY0ZSSc/e/Y4pum7wmpAESziWB2Uj2RdPhT+1rB0cufK8UxFJzeFVYDRSa8c qWNdSTblkH7cqV5JNsMqwKj4jb9THFEiGVYnvw4rAKPhN/xi4+eHlEokw+nkVDh7GAX/ZdzcYHbn8JF4 OvlJchxtCyMxl2v2dOVY9RwP3I3184ER2Ot/q7aT/27Z6uRkOGMYjL7iiBKJnU5+Hs4WBqHvOKJEYiO/ HzIg/gG5RRwXPKeO88DdyV3JsbTijeEMwRSrK0cqV5J+XZMrwhmCGUPFESWSfnTyUDgzMGPoOKJE0odf C2cFJvjvUSweF+QWfwjHe0zSwjcT5/L6cDbQO2NdOVIXx3AkHNVw1H4lcXJrOBPonVLiiC5eZYpIduti dpeFs4BeKS2OKJHsXic3h6OHXik1jiiRPLdOTujxXhKOHHqj9DiiRLKTf+X5sCyoJY4okeR8Rr0qHCn0 ho9j3C/l7k8fyTF5fziLYXFyPHtMY+p/9QB6xn8WrunKkcqVxK/B+a3nAoCeWcThN1h+4WtxypEQhxGt xBGdYiTEYURrcUSnFAlxGNFqHNEpREIcRrQeR7TlSIjDiKnEER03kl8sHUtfEocRU4sjOlYka3JYP26/ kRCHEVONI9pCJMRhxNTjiNYcCXEYQRzL1hgJcRhBHHlrioQ4jCCOna0hEuIwgjh2Z8mREIcRxLE3S4yE OIwgjv25WLP3hFUcjlwkxGEEcRzUp9VxIyEOI4ijL8eM5KfEYQFx9O04kYABfpDEYSGRVI8f4GKQuQHj wSWSaiGOoSSS6iCOoSWSaiCOsSSS4iGOsSWSYiGOUiSS4iCO0iSSYiCOUiWS0SGO0iWS0SCOWiSSwSGO 2iSSwSCOWiUSc4ijdonEDOJowadn6/LuMFHoDeJoQeIwgThakDhMII4WJA4TiKMFicOEubxja3Hzi451 SBwmLOJ4KllsrEviMIE4WpA4TCCOFiQOE4ijBYnDBOJoQeIwgThakDhMII4WJA4TiKMFicME4mhB4jCB OFrwLHFYQBwtSBwmEEcLnp1tyNvCRKE3iKMFicME4mhB4jCBOFqQOEwgjhYkDhOIowWJwwTiaEHiMGFd 3qKLSxx1Sxwm+Dic/DOz4FiPxGECcbQgcZhAHC1IHCYQRwsShwnE0YLEYQJxtCBxmEAcLUgcJhBHCxKH CcTRgsRhAnG0IHGYQBwtSBwmEEcLEocJxNGCxGECcbQgcZgwl8t1cf+eLDbWJXGYcFxeoFeO32cWHOuR OMzoZDNZbKxL4jBjLp/LLDjWopN/qW8P04Re2ZCX6iKfWVl0rEWuHKZ08q1kwbEeicOUNXljZtGxBp08 yX+rrOnklpWFxxrkyjEInTyaLDyW7xniGIK5vDWz+Fi2xDEYc/lyZgBYrme2fgwIBsLJHZkhYJmemR2T N4fJwSB08ttkCFimxDEKTp7IDAPLkjhG4ahcmhkGliWPOUZj8WPtuaFgGXLlGJVOXpcMBMuROEank6uS oWAZEkcR+J/hyQ8Ix5M4isHJ+zIDwvEkjqJw8oHMkHAciaM4nFybGRQOL3EUiZOPZYaFw0ocxXJMPpEZ GA4ncRTNXD6VGRoOI3EUD89iMpbEUQWd3JgMDu0ljmro5AvJ8NBW4qiKTr6SDBDtJI7q4NlMhpI4qoQn ixtC4qiWTr6XDBP7lTiqppMuGSj2J3FUDy91YCVxNEEndyaDxYNLHM3QyT3JcPFgEkdTdHJfMmDcv8TR HJ38Jhky7k/iaJJOHkwGjXuXOJrFycnMwHH3EkfTODmVGTruztPE0TpOHs8MHp9b4pgE/mWD8xsAt/f0 bC5vCCsITePkv5kNgNtLHJMivwkwp3+ZiHV5U1g5mASdPLayETAnV45J0skfko2AqxLHZOnk7mQz4LLE MWmcfDezKdDrH3PwpdyJc0w+mt0cyJUDlE05pJvhXLI5pi5xwEV0cnuyQaYscUCCk6szG2WKEgdsg5P7 MxtmShIH7MC0ryLEAbtgir+fzo+PwK5Zlxfrhnk4u5Fa1P+oP3HAnliTK3TznFnZTO35x9kP5FXhrAH2 gH/tdCf/yGyqVvTPBfbCcLYA+6CTyzSSX160qerXyZN6e0M4Q4AecHLzykarUSdf33qMBdA7/gf2OvnV yqYrXSe/09svqq8JZwJgiJPrdbPdrbfnn92Epbh4+qJ79PZWvb1BJQoYEf+NRSc36UbcUO/T+3/T27hh n1FP69tOqQ+rJ/TPD6j36v3j6h1637/f9/X+t9Vv6H3/UnD+9RL95v6svu362Vw+rvc/orfX6O0RvZK9 c+tqtiFX6tsun63JS9TD4YgAemY2+z9PdsdSqjH8hwAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAgrSURBVHhe7d29bhxVGMbxXAAgUVEhIYRCoAlFmtAgEB+i4QIQDSJIceJdezdSIqWBPlDxIeBy KLgBLgIJQ1ASKUI04Tz2CV6bsXe+zsx53/f/lx4Z1s56Zzw/2xsTcoGIiIiIiIiIiIiIiIiIiIiIiIiI iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIyre/v//GarXaW6/XL+abKHfjxo1n9vb27iyXyzfzTRSpBOOV BORh2pN0Ify2u7t7Kb+KUum8/Kxzk8/P5/lmilL6oN99egHki+D39PK1/OrQpa+oFzfPTd5OfjVFKH3A vz91AYAkl87BO5vnZWMgiVLC8FPDBaAd6DNofrOQpW8/3284L093Lb8Zee4cIFpoJFuAaCDx3hYgWlgk LYBoIPFcCyDawWKxeD3/kjC1BKKBxGstgeiJ+/1oSDoA0UDisbZAtGhIOgLRQOKtLkC0SEh6ANFA4qmu QLQoSHoC0UDipT5AtAhIBgDRQOKhvkA070gGAtFu5rsiqw0BonlGMgIQDSSWGwpE84pkJCAaSKw2BhDN I5IRgWggsdhYQDRvSEYGooHEWmMC0YRkvV5fzndvugJANJBYamwgWrrPBx6QFAKigcRKJYBoHpAUBKKB xEKlgGjWkRQGooGk9koC0SwjmQCIBpKaKw1Es4pkIiAaSGptCiCaRSQTAtH5uZXfLdXUVEA0a0imBKKB pMKmBKJZQjI1EA0klTU1EM0KkjmAaCCpqDmAaBaQzAVEA0klzQVEE5J0EV7JD6W65gSigaSC5gSipff/ qFYkcwPRQDJzcwPRakVSAxANJDNWAxCtRiS1ANFAMlO1ANFqQ1ITEA0kM1QTEK0mJLUB0UAycbUB0WpB UiOQvC/zQ6TS1QhEqwFJxUC0e/lhUslqBaLNjaRyIBpISlczEG1OJAaAaCApWe1AtLmQGAGigaRUFoBo QpJeXs0Pe5IMAdFAUiIrQPIep02GxBgQDSRjZwyINhkSg0A0kIyZQSDaJEiMAtFAMlZGgWjFkRgGooFk jAwD0YoiMQ5EA8nQjAPRiiFxAEQDyZAcANGKIHECRL9F/k0+JOqaEyDa6Ei8ANFA0jNHQLRRkXgCooGk R86AaKMh8QZEA0nHHALRHqeL+618iL3zCEQDSYecAtFF8PdQJF6BaCBpmVcg2lAknoFoIGmRZyDaECTe gWgg2ZJ3IFpfJBGAaCA5pwhAtD5IogDRQHJGUYBoXZFEAqKBpKFIQLQuSKIB0XQ95MMnFQ2I1hZJRCAa SDaKCERrgyQqEA0kuahAtG1IIgPRQJKKDETLSN7Np+NE0YFo4ZFEB6Klc/BPExKAHC00EoAcrQkJQI4X FglAjncaCUBOLiQSgJzcJhKA/H/hkKSD/vH0SWCH+zBdDO813M7297/Nl4//0sEC5IwlIHeabmf7T5bL 5fV8CfkuXQQ/NJ0AdgjkftPt7HAPd3Z2ns+Xkd/SgfIVhPVa+gTyWb6M/JYOkifprNfStfNVvoz8BhA2 YF/ny8hv6SD5Fov1Wnqi/mm+jPyWDhQgZ++vhtvY0f5cLBbP5cvIb+lAAXLG0ref/DbvGQvx1UOlgwVI w/RT9ASEHxQ2L84PCnmSfnLpfPz3n5qkf/6g6W0iT9fL4YUTJYAcbxOHAsjJhcOhAHK00zgUQI4XEocC yOEHv/FPFQLkaGFxqOhAMo7GP5cOkOA4VGQg5+FQ0YGEx6GiAtmGQ0UGAo5cRCBtcKioQMCxUTQgbXGo iEDAcapIQLrgUNGAgKOhKEC64lCRgKRj5f/s3lQEIH1wqChAwHFO3oH0xaEiAAHHljwDGYJDeQcCjhY5 BjL470r3DAQcLXMK5HHa1XyIvfMKBBwdcghkFBzKIxBwdMwZkNFwKG9AwNEjR0BGxaE8AQFHz5wAGR2H 8gIEHANyAKQIDuUBCDgGZhxIMRzKAZB7+VCob4aBFMWhjAMBxxgZBVIchzIMBBxjZRDIJDiUUSDgGDNL QNJjfZReToJDGQQCjrGzAkQ4VqvVlfywJ8kYEHCUyAKQOXAoQ0DAUaragcyFQxkBAo6S1QxkThzKABBw lK5WIHPjUJUDAccU1QikBhyqYiDgmKragNSCQ1UK5Iv88GiKagJSEw5VG5D0eG7lh0ZTVQuQ2nComoCA Y6ZqAFIjDlULEHDM2NxA0vt/UCMOVQMQcMzcnECEY71eX84PpbrmBgKOCpoLSO041JxAwFFJcwCxgEPN BQQcFTU1ECs41BxAwFFZUwKxhENNDQQcFTYVEGs41JRAwFFpUwCxiENNBQQcFVcaiFUcaiIgN/O7oxor CcQyDjUBEHDUXikg1nGowkDAYaESQNJ93reOQxUEAg4rjQ1EOBaLxev57k1XCAg4LDUmEE84VAEg4LDW WEC84VAjAwGHxcYA4hGHGhEIOKw2FIhXHGokIOCw3BAgnnGoEYCAw3p9gXjHoQYCAYeH+gCJgEMNAHIt 3wVZryuQKDhUTyDg8FQXIJFwqB5AwOGtDkAOIuFQHYGAw2MtgRys1+uL+ZeEqQMQcHitBZCQOFRLIODw 3BYgYXGoFkDA4b1zgITGobYAAUeE0kXw3ekPfrrtj2hPyJtaLpdvnz43Wrr9en4T8l7CcHfzgy8cu7u7 l/KrQ5fOxaub50YDR7D0bVS6EPT3jwvHr+nlS/lVlErn45d8bh6lfZRvpkitVquX02fGj/O/0ka3b99+ NsH4JO2FfBMRERERERERERERERERERERERERERERERERERERERERERERERERERERERER0URduPAv+kjw nBTHPTwAAAAASUVORK5CYII= iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAhjSURBVHhe7d2/byR3Gcfx64nj3W2okBBCIaQJRZrQIBA/lIY/ANEgghSUgiJFpDShDzTgGftA /DMU/AM00Yx9JyqkBA4lkaIoTZjP+ps72xnbOz++M9/ned5v6VPcrs+3OzuvXfts3z0gIiIiIiIiIiIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiovxtquZ73X63q86/kS6iL6s+eG5bt293x+b7 6RKK1PPV+bd3dfPxrm6/2FXtv48ePn4xXUVd27r5+/7Y7I/P+W/SxRSl7tnxnacnQLdt1X7wXNV8N10d uqOTixeuHpv98Tltf5uupgh1QOqvnAQg2Xd8ev6jm8dmf3xAEqcOw196T4K6+VDPoOnNQnZctT/tOzZp r6c3I8/dBkSLjuQeIBpIvHcXEC0ykgOAaCDx3H1ANCHZnbUvpd8SpgOBaCDx2iFAtO6T+SfRkAwAooHE Y4cC0aIhGQhEA4m3hgDRIiEZAUQDiaeGAtGiIBkJRAOJl8YA0SIgmQBEA4mHxgLRvCOZCETH5830rshq U4BonpFMBaKBxHhTgWhekcwBRAOJ4eYAonlEMhcQDSRGmwuI5g3JnEA0kBhsTiCakGzOHr2c3r3p5gai gcRYcwPZr2o/8oAkBxANJIbKAkRzgCQXEA0kRsoGRDOOJCcQDSQGygpEM4wkNxANJIWXHYhmFMkSQDSQ FNwiQDSDSJYCsl91/lb6Y6mkFgOiGUOyKBANJOW1KBDNEJLFgWggKavFgWhGkKwCRANJOa0CRDOAZDUg GkjKaDUgWofk+OzilXRTimtVIBpI1m9VIFrVfFIqktWBaCBZt9WBaIUiKQKIBpL1KgKIViCSYoBoIFmn YoBohSEpCogGkuUrCohWEJLigGggWbbigGiFICkSiFa1v083kXJXJBCtACTFAum2rZv30s2knBULRFsZ SclANJAsUNFAtBWRlA5EA0nmigeirYTEAhANJBkzAUTrkOxO2lfTzV4kK0A0kGTKDBCtaj9dEoklIBpI MmQKiLYgEmtANJDMnDkg2kJILALRQDJjJoFoCyCxCkQDyUyZBaJlRmIZiAaSGTINRMuIxDoQDSQTMw9E y4TEAxCte4z/nO4SDc0FEC0DEi9ANJCMzA0QbWYknoBoIBmRKyDajEi8AdFAMjB3QLQOyaZuf5Du4ug8 AtFAMiCXQLp19+uzqUi8AtFAcmBegWhTkXgGooHkgDwD0aYg8Q5EA8k9eQeijUUSAYgGkjuKAEQbgyQK EA0ktxQFiDYUSSQgGkh6igREG4IkGhBN50O6+6SiAdEORRIRiAaSK0UEoh2CJCoQDSSpqEC0+5BEBqKB pCsyEE1IjuuLH6fDca3oQLTwSKID0bZ183kfEoBcLjQSgFyuDwlAni0sEoA8200kALm+kEgAcn1XkQDk qwuHpDshHvYdiOjb1uevHZ81P+m7Lvq2dXuSTh//AeT2dSfC232Xs/0r7RvpFPLdtmrO+g4A2wN50nc5 05qPj+t/bdNp5DdeQdjoVe2v02nkNz5JZ2O3qdo/pNPIbwBhY7ep2z+m08hvfIjFxm5TN79Kp5HfAHL7 ulfX//VdzvZ/i/Xf3Z/a59Np5DeA3D7+mvf2hXj1UADpn76KzhcK+xfrC4V8kn5t3RPG02812Z22P+t7 m8iL960mAHm6qzgUQK4vHA4FkMvdxKEA8mwhcSiA7B/83p8qBMjlwuJQ0YEIx20/lw6Q4DhUZCB34VDR gYTHoaICuQ+HigwEHKmIQA7BoaICAceVogE5FIeKCAQcN4oEZAgOFQ0IOHqKAmQoDhUJSHd8+Jfd+4oA ZAwOFQUIOO7IO5CxOFQEIOC4J89ApuBQ3oGA44DcApnh/0r3DAQcB+YSSIdjd9K+mu7i6LwCAceA3AGZ CYfyCAQcA3MFZEYcyhsQcIzIDZCZcShPQMAxMhdAMuBQXoCAY0LmgWTCoTwAAcfETAPJiENZB7Ktm/fS XaGxmQWSGYeyDAQcM2USyAI4lFUg4Jgxc0AWwqEsAgHHzJkCUjWfLIVDWQMCjgyZAdLhOD67eCXd7EWy BAQcmTIBZAUcygoQcGSseCAr4VAWgIAjc0UDWRGHKh0IOBaoWCAr41AlAwHHQhUJpAAcqlQg4Fiw4oAU gkMVCeS0fTfdPFqiooAUhEMVB6Q6fyvdNFqqYoAUhkMVBQQc61QEkAJxqGKAgGO9VgdStR+ViEMVAQQc 67YqkA7H5uzRy+mmFNfqQMCxfqsBKRyHWhUIOMpoFSAGcKjVgICjnBYHYgSHWgUIOMpqUSCGcKjFgYCj vBYDYgyHWhQIOMpsESAGcajFgICj3LIDMYpDLQFkW7dvpj+OSiwrEMM4VG4g4DBQNiDGcaicQMBhpBxA ugf/iXUcKhcQcBhqbiDCsTtrX0rv3nQ5gIDDWHMC8YRDzQ0EHAabC4g3HGpOIOAw2hxAPOJQcwEBh+Gm AvGKQ80BBBzGmwLEMw41FQg4HDQWiHccagoQcDhpDJAIONQEIK+nd0HWGwokCg41Egg4PDUESCQcagQQ cHjrUCDbuvkwEg41EAg4PHYIEOE4Orl4If2WMA0AAg6v3QckKg51IBBweO4uIJFxqAOAgMN7twGJjkPd AwQcEeqAVDcf/G3V/CfaJ+R9barzH948NvvjUzdvpDch723r9p1rD36H4+jh4xfT1aE7qh995+qx2R8f cMRKH0bpX1e/fPDbf25OH38zXUVd3SvsP/Y4umO0qdufp4spUsd1863umfEX6Zd0tb+9f9Q9cfzya399 9PV0CRERERERERERERERERERERERERERERERERERERERERERERERERERERERERHRQj148H/zwsS30FCK 9AAAAABJRU5ErkJggg== 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 9PV0CRERERERERERERERERERERERERERERERERERERERERERERERERERERERERHRQj148H/zwsS30FCK 9AAAAABJRU5ErkJggg== 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 a35dAAAAAElFTkSuQmCC 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 FEVRlNgZG/t/tkPiWfUDFHcAAAAASUVORK5CYII= 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 FEVRlNgZG/t/tkPiWfUDFHcAAAAASUVORK5CYII= ================================================ FILE: FreeHttpControl/UserFeedbackWindow.Designer.cs ================================================ namespace FreeHttp.FreeHttpControl { partial class UserFeedbackWindow { /// /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(UserFeedbackWindow)); this.rtb_feedbackContent = new System.Windows.Forms.RichTextBox(); this.watermakTextBox_contactInfo = new FreeHttp.FreeHttpControl.WatermakTextBox(); this.bt_ok = new System.Windows.Forms.Button(); this.lb_info_1 = new System.Windows.Forms.Label(); this.llb_gotoGitHub = new System.Windows.Forms.LinkLabel(); this.SuspendLayout(); // // rtb_feedbackContent // this.rtb_feedbackContent.Location = new System.Drawing.Point(2, 3); this.rtb_feedbackContent.Name = "rtb_feedbackContent"; this.rtb_feedbackContent.Size = new System.Drawing.Size(723, 284); this.rtb_feedbackContent.TabIndex = 0; this.rtb_feedbackContent.Text = ""; // // watermakTextBox_contactInfo // this.watermakTextBox_contactInfo.Location = new System.Drawing.Point(140, 291); this.watermakTextBox_contactInfo.Name = "watermakTextBox_contactInfo"; this.watermakTextBox_contactInfo.Size = new System.Drawing.Size(584, 21); this.watermakTextBox_contactInfo.TabIndex = 1; this.watermakTextBox_contactInfo.WatermarkText = "email qq weixin or any contact information"; // // bt_ok // this.bt_ok.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.bt_ok.Location = new System.Drawing.Point(649, 318); this.bt_ok.Name = "bt_ok"; this.bt_ok.Size = new System.Drawing.Size(75, 23); this.bt_ok.TabIndex = 9; this.bt_ok.Text = "confirm"; this.bt_ok.UseVisualStyleBackColor = true; this.bt_ok.Click += new System.EventHandler(this.Bt_ok_Click); // // lb_info_1 // this.lb_info_1.AutoSize = true; this.lb_info_1.Location = new System.Drawing.Point(3, 294); this.lb_info_1.Name = "lb_info_1"; this.lb_info_1.Size = new System.Drawing.Size(131, 12); this.lb_info_1.TabIndex = 10; this.lb_info_1.Text = "contact information :"; // // llb_gotoGitHub // this.llb_gotoGitHub.AutoSize = true; this.llb_gotoGitHub.LinkColor = System.Drawing.SystemColors.Highlight; this.llb_gotoGitHub.Location = new System.Drawing.Point(524, 324); this.llb_gotoGitHub.Name = "llb_gotoGitHub"; this.llb_gotoGitHub.Size = new System.Drawing.Size(119, 12); this.llb_gotoGitHub.TabIndex = 11; this.llb_gotoGitHub.TabStop = true; this.llb_gotoGitHub.Text = "discussed in github"; this.llb_gotoGitHub.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.Llb_gotoGitHub_LinkClicked); // // UserFeedbackWindow // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(727, 350); this.Controls.Add(this.llb_gotoGitHub); this.Controls.Add(this.lb_info_1); this.Controls.Add(this.bt_ok); this.Controls.Add(this.watermakTextBox_contactInfo); this.Controls.Add(this.rtb_feedbackContent); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "UserFeedbackWindow"; this.Text = "Feedback"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.RichTextBox rtb_feedbackContent; private WatermakTextBox watermakTextBox_contactInfo; private System.Windows.Forms.Button bt_ok; private System.Windows.Forms.Label lb_info_1; private System.Windows.Forms.LinkLabel llb_gotoGitHub; } } ================================================ FILE: FreeHttpControl/UserFeedbackWindow.cs ================================================ //#define NET4_5UP using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.FreeHttpControl { public partial class UserFeedbackWindow : Form { FreeHttpWindow mainWindow; public UserFeedbackWindow(FreeHttpWindow freeHttpWindow) { InitializeComponent(); mainWindow = freeHttpWindow; } private void Llb_gotoGitHub_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { System.Diagnostics.Process.Start("https://github.com/lulianqi/FreeHttp/issues"); } private void Bt_ok_Click(object sender, EventArgs e) { if(rtb_feedbackContent.Text=="") { MessageBox.Show("Please enter content", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } #if NET4_5UP Task submitFeedback = WebService.FeedbackService.SubmitFeedbackAsync(WebService.UserComputerInfo.UserToken ,WebService.UserComputerInfo.GetComputerMac(), WebService.UserComputerInfo.GetMachineName(), watermakTextBox_contactInfo.Text, rtb_feedbackContent.Text); submitFeedback.ContinueWith((task) => { if (mainWindow == null) return; if (!(task.Result == 200 || task.Result ==201)) { mainWindow.PutError(string.Format("submit feedback fial with {0}", task.Result)); } else { mainWindow.PutInfo("submit feedback succeed"); } }); #endif #if NET4 WebService.FeedbackService.SubmitFeedbackTask(WebService.UserComputerInfo.GetComputerMac(), watermakTextBox_contactInfo.Text, rtb_feedbackContent.Text,new Action((code) => { if (mainWindow == null) return; if (!(code == 200 || code ==201)) { mainWindow.PutError(string.Format("submit feedback fial with {0}", code)); } else { mainWindow.PutInfo("submit feedback succeed"); } })); #endif this.Close(); } } } ================================================ FILE: FreeHttpControl/UserFeedbackWindow.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAMQOAADEDgAAAAAAAAAA AAD0n27/9J9u//Sfbv/0n27/9J9u//Sfbv/0n27/9J9u//Sfbv/xnHESAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAA9J9u//Sfbv/0n27/9J9u//Sfbv/0n27/9J9u//Sfbv/0n27/9J9u/wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAPSfbv/0n27/9J9u//Sfbv/0n27/9J9u//Sfbv/0n27/9J9u//Sfbv/0n27/9J1uLAAA AAAAAAAAAAAAAAAAAAD0n27/9J9u//Sfbv/0n27/9J9u//Sfbv/0n27/9J9u//Sfbv/0n27/9J9u//Sf bv8AAAAAAAAAAAAAAAAAAAAA9J9u//Sfbv/0n27/9J9u/wAAAAAAAAAA9J9u//Sfbv/0n27/9J9u//Sf bv/0n27/AAAAAAAAAAAAAAAAAAAAAPSfbv/0n27/9J9u//Sfbv8AAAAA9J9u/wAAAAAAAAAA9J9u//Sf bv/0n27/9J9u/wAAAAAAAAAAAAAAAAAAAAD0n27/9J9u//Sfbv/0n27/AAAAAPSfbv/0n27/8KVpEQAA AAD0n27/9J9u//Sfbv8AAAAAAAAAAAAAAAAAAAAA9J9u//Sfbv/0n27/9J9u//Sfbv8AAAAA9J9u//Sf bv8AAAAAAAAAAPSfbv/0n27/AAAAAAAAAAAAAAAAAAAAAPSfbv/0n27/9J9u//Sfbv/0n27/AAAAAAAA AAAAAAAA9J9u//Sfbv8AAAAA8qFrJgAAAAAAAAAAAAAAAAAAAAD0n27/9J9u//Sfbv/0n27/9J9u//Sf bv8AAAAA7plmD/Sfbv/0n27/9Z9ukAAAAAAAAAAAAAAAAAAAAAAAAAAA9J9u//Sfbv/0n27/9J9u//Sf bv/0n27/9J9u/wAAAADzn2wo9J9u//Sfbv/0n278AAAAAAAAAAAAAAAAAAAAAPSfbv/0n27/9J9u//Sf bv/0n27/9J9u//Sfbv/0n27/AAAAAPafb1D0n27/9J9u//afbzUAAAAAAAAAAAAAAAD0n27/9J9u//Sf bv/0n27/9J9u//Sfbv/0n27/9J9u//Sfbv8AAAAA9KBvg/Sfbv/0n27/9Z9u2AAAAAAAAAAA9J9u//Sf bv/0n27/9J9u//Sfbv/0n27/9J9u//Sfbv/0n27/9J9u/wAAAAD0n22x9J9u/wAAAAD/km0HAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0n27/9J9u/wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9Z9u7gAA AAAAAAAAAH8AAAA/AAAAHwAAAA8AAAwPAAALDwAACY8AAATPAAAHPwAAAz8AAAGfAAAAzwAAAGcAAAA3 AAD/+QAA//8AAA== ================================================ FILE: HttpHelper/ContentModific.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; namespace FreeHttp.HttpHelper { public enum ContentModificMode { NoChange, KeyVauleReplace, EntireReplace, RegexReplace, HexReplace, ReCode } [Serializable] [DataContract] public class ContentModific { [DataMember] public ContentModificMode ModificMode { get; set; } [DataMember] public string TargetKey { get; set; } [DataMember] public string ReplaceContent { get; set; } public ContentModific() { ModificMode = ContentModificMode.NoChange; TargetKey = null; ReplaceContent = null; } public ContentModific(string targetKey,string replaceContent) { if (string.IsNullOrEmpty(targetKey)) { ModificMode = ContentModificMode.EntireReplace; TargetKey = null; } else { if (targetKey.StartsWith("")) { ModificMode = ContentModificMode.RegexReplace; TargetKey = targetKey; } else if (targetKey.StartsWith("")) { //check data try { replaceContent = replaceContent.TrimEnd(' '); targetKey = targetKey.TrimEnd(' '); replaceContent = BitConverter.ToString( AutoTest.MyBytes.HexStringToByte(replaceContent, AutoTest.HexDecimal.hex16)); TargetKey =string.Format("{0}", BitConverter.ToString(AutoTest.MyBytes.HexStringToByte(targetKey.Remove(0, "".Length), AutoTest.HexDecimal.hex16))); } catch (Exception ex) { throw new Exception(string.Format("your input is illegal that your should use prescribed hex16 format like 0x00 0x01 0xff and the space or - will be ok for byte spit. \r\ninner Exception is [{0}]", ex.Message), ex); } ModificMode = ContentModificMode.HexReplace; } else if ((targetKey.StartsWith(""))) { try { targetKey = targetKey.TrimEnd(' '); Encoding.GetEncoding(targetKey.Remove(0, 8).Trim(' ')); //https://docs.microsoft.com/zh-cn/dotnet/api/system.text.encoding?view=netcore-2.2 } catch (Exception ex) { throw new Exception(string.Format("your input is illegal that your should use legal EncodingInfo.Name like utf-8;hz-gb-2312 ......\r\ninner Exception is [{0}]", ex.Message), ex); } ModificMode = ContentModificMode.ReCode; TargetKey = targetKey; } else { ModificMode = ContentModificMode.KeyVauleReplace; TargetKey = targetKey; } } //set the ReplaceContent if (ModificMode == ContentModificMode.EntireReplace && string.IsNullOrEmpty(replaceContent)) { ModificMode = ContentModificMode.NoChange; ReplaceContent = null; } else if(ModificMode == ContentModificMode.ReCode) { ReplaceContent = null; } else { ReplaceContent = (replaceContent == null ? "" : replaceContent); } } public string GetFinalContent(string sourceContent) { string finalContent = null; switch(ModificMode) { case ContentModificMode.NoChange: finalContent = sourceContent; break; case ContentModificMode.EntireReplace: finalContent = ReplaceContent; break; case ContentModificMode.KeyVauleReplace: finalContent = sourceContent.Replace(TargetKey, ReplaceContent); break; case ContentModificMode.RegexReplace: try { finalContent = System.Text.RegularExpressions.Regex.Replace(sourceContent, TargetKey.Remove(0, 8), ReplaceContent); } catch(Exception ex) { finalContent = string.Format("RegexReplace [{0}] GetFinalContent fail :{1}", TargetKey.Remove(0, 7), ex.Message); } break; case ContentModificMode.HexReplace: throw new Exception("your should implement HexReplace with anther GetFinalContent overload"); case ContentModificMode.ReCode: throw new Exception("your should implement Recode with GetRecodeContent"); default: throw new Exception("not support ContentModificMode"); } return finalContent; } public byte[] GetFinalContent(byte[] sourceContent) { switch (ModificMode) { case ContentModificMode.NoChange: case ContentModificMode.EntireReplace: case ContentModificMode.KeyVauleReplace: case ContentModificMode.RegexReplace: case ContentModificMode.ReCode: throw new Exception("this implement of GetFinalContent is only for HexReplace"); case ContentModificMode.HexReplace: byte[] replaceContentBytes = AutoTest.MyBytes.HexStringToByte(ReplaceContent, AutoTest.HexDecimal.hex16); string searchKey = TargetKey.Remove(0, 5);// if (string.IsNullOrEmpty(searchKey)) { return replaceContentBytes; } byte[] searchKeyBytes = AutoTest.MyBytes.HexStringToByte(searchKey, AutoTest.HexDecimal.hex16); return AutoTest.MyBytes.ReplaceBytes(sourceContent, searchKeyBytes, replaceContentBytes); default: throw new Exception("not support ContentModificMode"); } } public byte[] GetRecodeContent(string sourceContent) { switch (ModificMode) { case ContentModificMode.NoChange: case ContentModificMode.EntireReplace: case ContentModificMode.KeyVauleReplace: case ContentModificMode.RegexReplace: case ContentModificMode.HexReplace: throw new Exception("this implement of GetRecodeContent is only for ReCode "); case ContentModificMode.ReCode: string searchKey = TargetKey.Remove(0, 8).Trim(' '); Encoding nowEncoding = Encoding.GetEncoding(searchKey); //shoud check the searchKey when we creat ContentModific return nowEncoding.GetBytes(sourceContent); default: throw new Exception("not support ContentModificMode"); } } public override string ToString() { StringBuilder resultStringBuilder = new StringBuilder(); switch (ModificMode) { case ContentModificMode.NoChange: break; case ContentModificMode.EntireReplace: resultStringBuilder.Append("[EntireReplace] "); resultStringBuilder.Append(ReplaceContent); break; case ContentModificMode.KeyVauleReplace: resultStringBuilder.Append("[Replace] "); resultStringBuilder.Append(TargetKey); resultStringBuilder.Append(" [To] "); resultStringBuilder.Append(ReplaceContent); break; case ContentModificMode.RegexReplace: resultStringBuilder.Append("[RegexReplace] "); resultStringBuilder.Append(TargetKey); resultStringBuilder.Append(" [To] "); resultStringBuilder.Append(ReplaceContent); break; case ContentModificMode.HexReplace: resultStringBuilder.Append("[HexReplace] "); resultStringBuilder.Append(TargetKey); resultStringBuilder.Append(" [To] "); resultStringBuilder.Append(ReplaceContent); break; case ContentModificMode.ReCode: resultStringBuilder.Append("[ReCode] "); resultStringBuilder.Append(TargetKey); break; default: resultStringBuilder.Append("not support ContentModificMode"); break; } return resultStringBuilder.ToString(); } } } ================================================ FILE: HttpHelper/HttpRequest.cs ================================================ using FreeHttp.MyHelper; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Text; namespace FreeHttp.HttpHelper { [Serializable] [DataContract] public class HttpRequest { private string requestLine; private string requestMethod; private string requestUri; private string requestVersions; private List> requestHeads; private byte[] requestEntity; [DataMember] /// /// get or set the request line (it will updata RequestMethod,RequestUri,RequestVersions) /// public string RequestLine { get { return requestLine; } set { SetRequestLine(value); ChangeRawData(); } } [DataMember] /// /// get or set the requst method (it will updata RequestLine) /// public string RequestMethod { get { return requestMethod; } set { requestMethod = value; UpdataRequestLine(); ChangeRawData(); } } [DataMember] /// /// get or set the requst uri (it will updata RequestLine) /// public string RequestUri { get { return requestUri; } set { requestUri = value; UpdataRequestLine(); ChangeRawData(); } } [DataMember] /// /// get or set the requst versions (it will updata RequestLine) /// public string RequestVersions { get { return requestVersions; } set { requestVersions = value; UpdataRequestLine(); ChangeRawData(); } } [DataMember] /// /// get or set request heads (if you not set the List> and just change or add a element ,the ChangeRawData() will not trigger ,so your should call ChangeRawData() ) /// public List> RequestHeads { get { return requestHeads; } set { requestHeads = value; ChangeRawData(); } } [DataMember] /// /// get or set request body (if you not set the byte[] and just change or add a element ,the ChangeRawData() will not trigger ,so your should call ChangeRawData() ) /// public byte[] RequestEntity { get { return requestEntity; } set { requestEntity = value; ChangeRawData(); } } [DataMember] //public string OriginSting { get; private set; } /// /// get or set OriginSting (the OriginSting is not the infor in http ,it only use for show ui) /// public string OriginSting { get; set; } private byte[] rawRequest; public HttpRequest() { RequestHeads = new List>(); rawRequest = null; } private void SetRequestLine(string yourRequestLine,bool isThrowException =true) { if(yourRequestLine.Contains('\n') || string.IsNullOrWhiteSpace(yourRequestLine)) { if (isThrowException) { throw new Exception("your line is empty"); } else { return; } } string[] requestLineStrs = yourRequestLine.Split(new char[] { ' ' }, 3); if (requestLineStrs.Length !=3) { if (isThrowException) { throw new Exception("error format in response line"); } else { return; } } if (string.IsNullOrEmpty( requestLineStrs[1])) { throw new Exception("must specify a complete URI"); } //RAW 报文在没有代理的情况下 请求行 里的http://host 是可以省略的 //if(!(requestLineStrs[1].StartsWith("http://") || requestLineStrs[1].StartsWith("https://")|| requestLineStrs[1].StartsWith("ftp://"))) //{ // if (isThrowException) // { // //requestLineStrs[1] = $"http://{requestLineStrs[1]}"; // throw new Exception("URI scheme must be http, https, or ftp"); // } // else // { // return; // } //} requestMethod = requestLineStrs[0]; requestUri = requestLineStrs[1]; requestVersions = requestLineStrs[2]; requestLine = yourRequestLine; } private void UpdataRequestLine() { requestLine = string.Format("{0} {1} {2}", requestMethod == null ? "" : requestMethod, requestUri == null ? "" : requestUri, requestVersions == null ? "" : requestVersions); } /// /// when you want refresh the GetRawHttpRequest cache call it /// public void ChangeRawData() { rawRequest = null; } /// /// reset ContentLength with the accurate value /// public void SetAutoContentLength() { if (RequestHeads==null) { RequestHeads = new List>(); } else { List> mvKvpList = new List>(); foreach (MyKeyValuePair kvp in RequestHeads) { if (kvp.Key == "Content-Length") { mvKvpList.Add(kvp); } } if (mvKvpList.Count > 0) { foreach (MyKeyValuePair kvp in mvKvpList) { RequestHeads.Remove(kvp); } } } RequestHeads.Add(new MyKeyValuePair("Content-Length", RequestEntity == null ? "0" : RequestEntity.Length.ToString())); } /// /// Get the raw byte[] request (it will use cache ,if you want refresh it just call ChangeRawData() first) /// /// request bytes public byte[] GetRawHttpRequest() { if (rawRequest == null) { StringBuilder tempResponseSb = new StringBuilder(); tempResponseSb.AppendLine(RequestLine); foreach (var tempHead in RequestHeads) { tempResponseSb.AppendLine(string.Format("{0}: {1}", tempHead.Key, tempHead.Value)); } tempResponseSb.Append("\r\n"); if (RequestEntity != null) { rawRequest = Encoding.UTF8.GetBytes(tempResponseSb.ToString()).Concat(RequestEntity).ToArray(); } else { rawRequest = Encoding.UTF8.GetBytes(tempResponseSb.ToString()); } } return rawRequest; } /// /// Get HttpRequest from a raw data string (it will throw exception when find the error string) /// in http heads and line it segmentation with CRLF (\r\n) ,but in entity it usual use \n to new line /// /// raw request string /// HttpRequest public static HttpRequest GetHttpRequest(string yourRequest) { HttpRequest httpRequest = new HttpRequest(); httpRequest.OriginSting = yourRequest; if (yourRequest != null) { int tempIndex; string tempString; //ResponseLine tempIndex = yourRequest.IndexOf("\r\n"); if (tempIndex < 1) { throw new Exception("can not find request line"); } tempString = yourRequest.Substring(0, tempIndex); httpRequest.SetRequestLine(tempString); //ResponseHeads yourRequest = yourRequest.Remove(0, tempIndex + 2); tempIndex = yourRequest.IndexOf("\r\n"); while (tempIndex > 0) { tempString = yourRequest.Substring(0, tempIndex); yourRequest = yourRequest.Remove(0, tempIndex + 2); tempIndex = tempString.IndexOf(':'); if (tempIndex < 0) { throw new Exception(string.Format("error format in response head [{0}]", tempString)); } httpRequest.RequestHeads.Add(new MyKeyValuePair(tempString.Substring(0, tempIndex), tempString.Remove(0, tempIndex + 1).TrimStart(' '))); tempIndex = yourRequest.IndexOf("\r\n"); } if (tempIndex < 0) { throw new Exception("Please ensure that there is a single empty line after the HTTP headers."); } //ResponseEntity yourRequest = yourRequest.Remove(0, tempIndex + 2); if (yourRequest == "") { httpRequest.RequestEntity = new byte[0]; return httpRequest; } else if (yourRequest.StartsWith("<>")) { tempString = yourRequest.Remove(0, 21); if (File.Exists(tempString)) { using (FileStream fileStream = new FileStream(tempString, FileMode.Open, FileAccess.Read, FileShare.Read)) { if (fileStream.Length > int.MaxValue) { throw new Exception(string.Format("your file path in ResponseEntity is too large with {0}", tempString)); } httpRequest.RequestEntity = new byte[fileStream.Length]; fileStream.Read(httpRequest.RequestEntity, 0, httpRequest.RequestEntity.Length); } } else { throw new Exception(string.Format("your file path in ResponseEntity is not Exists with {0}", tempString)); } } else { //httpRequest = httpRequest.Replace("\r\n", "\n"); if you want strict format,your should replace \r\n httpRequest.RequestEntity = Encoding.UTF8.GetBytes(yourRequest); } } return httpRequest; } } } ================================================ FILE: HttpHelper/HttpResponse.cs ================================================ using FreeHttp.MyHelper; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Text; namespace FreeHttp.HttpHelper { [Serializable] [DataContract] public class HttpResponse { private string responseLine; private string responseVersion; private int responseCode; private string responseStatusDescription; private List> responseHeads; private byte[] responseEntity; [DataMember] /// /// get or set the response line (it will updata ResponseStatusDescription,ResponseVersion,ResponseCode) /// public string ResponseLine { get { return responseLine; } set { SetResponseLine(value); ChangeRawData(); } } [DataMember] /// /// get or set the response version (it will updata ResponseLine) /// public string ResponseVersion { get { return responseVersion; } set { responseVersion = value; UpdataResponseLine(); ChangeRawData(); } } [DataMember] /// /// get or set the response code (it will updata ResponseLine) /// public int ResponseCode { get { return responseCode; } set { responseCode = value; UpdataResponseLine(); ChangeRawData(); } } [DataMember] /// /// get or set the response StatusDescription (it will updata ResponseLine) /// public string ResponseStatusDescription { get { return responseStatusDescription; } set { responseStatusDescription = value; UpdataResponseLine(); ChangeRawData(); } } [DataMember] /// /// get or set response heads (if you not set the List> and just change or add a element ,the ChangeRawData() will not trigger ,so your should call ChangeRawData() ) /// public List> ResponseHeads { get { return responseHeads; } set { responseHeads = value; ChangeRawData(); } } [DataMember] /// /// get or set response body (if you not set the byte[] and just change or add a element ,the ChangeRawData() will not trigger ,so your should call ChangeRawData() ) /// public byte[] ResponseEntity { get { return responseEntity; } set { responseEntity = value; ChangeRawData(); } } [DataMember] /// /// get or set OriginSting (the OriginSting is not the infor in http ,it only use for show ui) /// public string OriginSting { get; set; } private byte[] rawResponse; public HttpResponse() { ResponseHeads = new List>(); rawResponse = null; } private void SetResponseLine(string yourResponseLine) { string[] responseLineStrs = yourResponseLine.Split(new char[] { ' ' }, 3); if (responseLineStrs.Length < 2) { throw new Exception("error format in response line"); } responseVersion = responseLineStrs[0]; int tempCode; if (int.TryParse(responseLineStrs[1], out tempCode)) { responseCode = tempCode; } else { throw new Exception("error format in responseCode"); } responseStatusDescription = responseLineStrs.Length == 3 ? responseLineStrs[2] : ""; responseLine = yourResponseLine; } private void UpdataResponseLine() { responseLine = string.Format("{0} {1} {2}", responseVersion == null ? "" : responseVersion, responseCode.ToString(), responseStatusDescription == null ? "" : responseStatusDescription); } /// /// when you want refresh the GetRawHttpResponse cache call it /// public void ChangeRawData() { rawResponse = null; } /// /// reset ContentLength with the accurate value /// public void SetAutoContentLength() { if (ResponseHeads == null) { ResponseHeads = new List>(); } else { /* List> mvKvpList = new List>(); foreach (MyKeyValuePair kvp in ResponseHeads) { if (kvp.Key.ToLower() == "content-length") { mvKvpList.Add(kvp); } } if (mvKvpList.Count > 0) { foreach (MyKeyValuePair kvp in mvKvpList) { ResponseHeads.Remove(kvp); } } * **/ int responseHeadsCount = ResponseHeads.Count; for (int i = responseHeadsCount - 1; i >= 0; i--) { if(ResponseHeads[i].Key.ToLower() == "content-length") { ResponseHeads.RemoveAt(i); } } } if (ResponseEntity == null || ResponseEntity.Length == 0) { return; } ResponseHeads.Add(new MyKeyValuePair("Content-Length", ResponseEntity == null ? "0" : ResponseEntity.Length.ToString())); } /// /// Get the raw byte[] response (it will use cache ,if you want refresh it just call ChangeRawData() first) /// /// public byte[] GetRawHttpResponse() { if (rawResponse == null) { StringBuilder tempResponseSb = new StringBuilder(); tempResponseSb.AppendLine(ResponseLine); foreach (var tempHead in ResponseHeads) { tempResponseSb.AppendLine(string.Format("{0}: {1}", tempHead.Key, tempHead.Value)); } tempResponseSb.Append("\r\n"); if (ResponseEntity != null) { rawResponse = Encoding.UTF8.GetBytes(tempResponseSb.ToString()).Concat(ResponseEntity).ToArray(); } else { rawResponse = Encoding.UTF8.GetBytes(tempResponseSb.ToString()); } } return rawResponse; } /// /// Get HttpResponse from a raw data string (it will throw exception when find the error string) /// in http heads and line it segmentation with CRLF (\r\n) ,but in entity it usual use \n to new line /// /// raw response string /// HttpResponse public static HttpResponse GetHttpResponse(string yourResponse) { HttpResponse httpResponse = new HttpResponse(); httpResponse.OriginSting = yourResponse; if (yourResponse != null) { int tempIndex; string tempString; //ResponseLine tempIndex = yourResponse.IndexOf("\r\n"); if (tempIndex < 1) { throw new Exception("can not find response line"); } tempString = yourResponse.Substring(0, tempIndex); httpResponse.SetResponseLine(tempString); #region SetResponseLine replace //string[] ResponseLineStrs = tempString.Split(new char[]{' '},3); //if (ResponseLineStrs.Length < 2) //{ // throw new Exception("error format in response line"); //} //httpResponse.responseVersion = ResponseLineStrs[0]; //int responseCode; //if (int.TryParse(ResponseLineStrs[1], out responseCode)) //{ // httpResponse.responseCode = responseCode; //} //else //{ // throw new Exception("error format in responseCode"); //} //httpResponse.responseStatusDescription = ResponseLineStrs.Length == 3 ? ResponseLineStrs[2] : ""; //httpResponse.responseLine = tempString; //ResponseHeads #endregion yourResponse = yourResponse.Remove(0, tempIndex + 2); tempIndex = yourResponse.IndexOf("\r\n"); while (tempIndex > 0) { tempString = yourResponse.Substring(0, tempIndex); yourResponse = yourResponse.Remove(0, tempIndex + 2); tempIndex = tempString.IndexOf(':'); if (tempIndex < 0) { throw new Exception(string.Format("error format in response head [{0}]", tempString)); } httpResponse.ResponseHeads.Add(new MyKeyValuePair(tempString.Substring(0, tempIndex), tempString.Remove(0, tempIndex + 1).TrimStart(' '))); tempIndex = yourResponse.IndexOf("\r\n"); } if (tempIndex < 0) { throw new Exception("Please ensure that there is a single empty line after the HTTP headers."); } //ResponseEntity tempIndex=0 yourResponse = yourResponse.Remove(0, tempIndex + 2); if (yourResponse == "") { httpResponse.ResponseEntity = new byte[0]; return httpResponse; } else if (yourResponse.StartsWith("<>")) { tempString = yourResponse.Remove(0, 21); if (File.Exists(tempString)) { using (FileStream fileStream = new FileStream(tempString, FileMode.Open, FileAccess.Read, FileShare.Read)) { if (fileStream.Length > int.MaxValue) { throw new Exception(string.Format("your file path in ResponseEntity is too large with {0}", tempString)); } httpResponse.ResponseEntity = new byte[fileStream.Length]; fileStream.Read(httpResponse.ResponseEntity, 0, httpResponse.ResponseEntity.Length); } } else { throw new Exception(string.Format("your file path in ResponseEntity is not Exists with {0}", tempString)); } } else { //yourResponse = yourResponse.Replace("\r\n", "\n"); if you want strict format,your should replace \r\n httpResponse.ResponseEntity = Encoding.UTF8.GetBytes(yourResponse); } } return httpResponse; } } } ================================================ FILE: HttpHelper/ParameterContentModific.cs ================================================ using FreeHttp.AutoTest.ParameterizationContent; using FreeHttp.AutoTest.RunTimeStaticData; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.HttpHelper { [Serializable] [DataContract] public class ParameterContentModific: ContentModific { [DataMember] //[System.Xml.Serialization.XmlAttribute("ParameterTargetKey")] //public new CaseParameterizationContent TargetKey { get; set; } //使用new隐藏成员后,序列化同名,需要设置别名,别名设置又不能用于复杂类型 public CaseParameterizationContent ParameterTargetKey { get; set; } [DataMember] //[System.Xml.Serialization.XmlAttribute("ParameterReplaceContent")] //public new CaseParameterizationContent ReplaceContent { get; set; } public CaseParameterizationContent ParameterReplaceContent { get; set; } //IsUseParameter will disable encodetype in CaseParameterizationContent ,if your need encodetype ability just remove it [DataMember] public bool IsUseParameter { get; set; } public void SetUseParameterInfo(bool isUseParameter , ActuatorStaticDataCollection staticDataCollection =null ) { IsUseParameter = isUseParameter; ParameterTargetKey.hasParameter = IsUseParameter; ParameterReplaceContent.hasParameter= IsUseParameter; if (IsUseParameter && staticDataCollection != null) { actuatorStaticDataCollection = staticDataCollection; } } [System.Xml.Serialization.XmlIgnore] private ActuatorStaticDataCollection actuatorStaticDataCollection; public ParameterContentModific(string targetKey, string replaceContent , ActuatorStaticDataCollection dataCollection , bool useParameter): base(targetKey, replaceContent) { ParameterTargetKey = new CaseParameterizationContent(targetKey, useParameter); ParameterReplaceContent = new CaseParameterizationContent(replaceContent, useParameter); actuatorStaticDataCollection = dataCollection; IsUseParameter = useParameter; } public ParameterContentModific() : this(null, null, null, false) { } public ParameterContentModific(string targetKey, string replaceContent):this(targetKey, replaceContent,null,false) { } public string GetFinalContent(string sourceContent, NameValueCollection yourDataResultCollection, out string errorMessage) { errorMessage = null; if (IsUseParameter) { base.TargetKey = ParameterTargetKey.GetTargetContentData(actuatorStaticDataCollection, yourDataResultCollection, out string errorMes); if (errorMes == null) { base.ReplaceContent = ParameterReplaceContent.GetTargetContentData(actuatorStaticDataCollection, yourDataResultCollection, out errorMes); } else { base.ReplaceContent = ParameterReplaceContent.GetTargetContentData(); } } else { base.TargetKey = ParameterTargetKey.GetTargetContentData(); base.ReplaceContent = ParameterReplaceContent.GetTargetContentData(); } return base.GetFinalContent(sourceContent); } public new string GetFinalContent(string sourceContent) { NameValueCollection nameValueCollection = new NameValueCollection(); return GetFinalContent(sourceContent, nameValueCollection, out string _); } } } ================================================ FILE: HttpHelper/ParameterHttpRequest.cs ================================================ using FreeHttp.AutoTest.ParameterizationContent; using FreeHttp.AutoTest.RunTimeStaticData; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.HttpHelper { [Serializable] [DataContract] public class ParameterHttpRequest : HttpRequest { [DataMember] public CaseParameterizationContent ParameterizationContent{ get; set; } [NonSerialized] private ActuatorStaticDataCollection actuatorStaticDataCollection; public ParameterHttpRequest() { actuatorStaticDataCollection = null; } public ParameterHttpRequest(string yourRequest, bool isParameter) { ParameterizationContent = new CaseParameterizationContent(yourRequest, isParameter); ParameterizationContent.encodetype = ParameterizationContentEncodingType.encode_default; base.OriginSting = yourRequest; } private ParameterHttpRequest(HttpRequest httpRequest) { RequestLine = httpRequest.RequestLine; RequestHeads = httpRequest.RequestHeads; RequestEntity = httpRequest.RequestEntity; OriginSting = httpRequest.OriginSting; } public void SetUseParameterInfo(bool isUseParameter ,ActuatorStaticDataCollection yourStaticDataCollection) { ParameterizationContent.hasParameter = isUseParameter; actuatorStaticDataCollection = yourStaticDataCollection; } public new byte[] GetRawHttpRequest() { return base.GetRawHttpRequest(); } public byte[] GetRawHttpRequest(out string errorMes, out NameValueCollection nameValueCollection) { nameValueCollection = null; errorMes = null; if(ParameterizationContent.hasParameter) { nameValueCollection = new NameValueCollection(); string newOriginSting = ParameterizationContent.GetTargetContentData(actuatorStaticDataCollection, nameValueCollection, out errorMes); HttpRequest tempHttpRequest = HttpRequest.GetHttpRequest(newOriginSting); //tempHttpRequest.SetAutoContentLength(); return tempHttpRequest.GetRawHttpRequest(); } return base.GetRawHttpRequest(); } public HttpRequest UpdateHttpRequest(out string errorMes, out NameValueCollection nameValueCollection) { nameValueCollection = null; errorMes = null; if (ParameterizationContent.hasParameter) { nameValueCollection = new NameValueCollection(); string newOriginSting = ParameterizationContent.GetTargetContentData(actuatorStaticDataCollection, nameValueCollection, out errorMes); HttpRequest tempHttpRequest = HttpRequest.GetHttpRequest(newOriginSting); // it may throw exception tempHttpRequest.SetAutoContentLength(); // if hasParameter SetAutoContentLength return tempHttpRequest; } return this; } public static ParameterHttpRequest GetHttpRequest(string yourRequest, bool isParameter) { ParameterHttpRequest returnPrameterHttpRequest; returnPrameterHttpRequest = new ParameterHttpRequest(HttpRequest.GetHttpRequest(yourRequest)); returnPrameterHttpRequest.ParameterizationContent = new CaseParameterizationContent(yourRequest, isParameter); return returnPrameterHttpRequest; } public static ParameterHttpRequest GetHttpRequest(string yourRequest, bool isParameter, ActuatorStaticDataCollection yourActuatorStaticDataCollection) { ParameterHttpRequest returnPrameterHttpRequest = GetHttpRequest(yourRequest, isParameter); //returnPrameterHttpRequest.actuatorStaticDataCollection = yourActuatorStaticDataCollection; returnPrameterHttpRequest.SetUseParameterInfo(isParameter,yourActuatorStaticDataCollection); return returnPrameterHttpRequest; } } } ================================================ FILE: HttpHelper/ParameterHttpResponse.cs ================================================ using FreeHttp.AutoTest.ParameterizationContent; using FreeHttp.AutoTest.RunTimeStaticData; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.HttpHelper { [Serializable] [DataContract] public class ParameterHttpResponse : HttpResponse { [DataMember] public CaseParameterizationContent ParameterizationContent{ get; set; } [NonSerialized] private ActuatorStaticDataCollection actuatorStaticDataCollection; public ParameterHttpResponse(string yourResponse, bool isParameter) { ParameterizationContent = new CaseParameterizationContent(yourResponse, isParameter); ParameterizationContent.encodetype = ParameterizationContentEncodingType.encode_default; base.OriginSting = yourResponse; } public ParameterHttpResponse() { actuatorStaticDataCollection = null; } private ParameterHttpResponse(HttpResponse httpResponse) { ResponseLine = httpResponse.ResponseLine; ResponseHeads = httpResponse.ResponseHeads; ResponseEntity = httpResponse.ResponseEntity; OriginSting = httpResponse.OriginSting; } public void SetUseParameterInfo(bool isUseParameter, ActuatorStaticDataCollection yourStaticDataCollection) { ParameterizationContent.hasParameter = isUseParameter; actuatorStaticDataCollection = yourStaticDataCollection; } public new byte[] GetRawHttpResponse() { return base.GetRawHttpResponse(); } public byte[] GetRawHttpResponse(out string errorMes, out NameValueCollection nameValueCollection) { nameValueCollection = null; errorMes = null; if(ParameterizationContent.hasParameter) { nameValueCollection = new NameValueCollection(); string newOriginSting = ParameterizationContent.GetTargetContentData(actuatorStaticDataCollection, nameValueCollection, out errorMes); HttpResponse tempHttpResponse = HttpResponse.GetHttpResponse(newOriginSting); //tempHttpResponse.SetAutoContentLength(); return tempHttpResponse.GetRawHttpResponse(); } return base.GetRawHttpResponse(); } public HttpResponse UpdateHttpResponse(out string errorMes, out NameValueCollection nameValueCollection) { nameValueCollection = null; errorMes = null; if (ParameterizationContent.hasParameter) { nameValueCollection = new NameValueCollection(); string newOriginSting = ParameterizationContent.GetTargetContentData(actuatorStaticDataCollection, nameValueCollection, out errorMes); HttpResponse tempHttpResponse = HttpResponse.GetHttpResponse(newOriginSting); tempHttpResponse.SetAutoContentLength(); // if hasParameter SetAutoContentLength return tempHttpResponse; } return this; } public static ParameterHttpResponse GetHttpResponse(string yourResponse, bool isParameter) { ParameterHttpResponse returnPrameterHttpResponse; returnPrameterHttpResponse = new ParameterHttpResponse(HttpResponse.GetHttpResponse(yourResponse)); returnPrameterHttpResponse.ParameterizationContent = new CaseParameterizationContent(yourResponse, isParameter); return returnPrameterHttpResponse; } public static ParameterHttpResponse GetHttpResponse(string yourResponse, bool isParameter, ActuatorStaticDataCollection yourActuatorStaticDataCollection) { ParameterHttpResponse returnPrameterHttpResponse = GetHttpResponse(yourResponse, isParameter); //returnPrameterHttpResponse.actuatorStaticDataCollection = yourActuatorStaticDataCollection; returnPrameterHttpResponse.SetUseParameterInfo(isParameter, yourActuatorStaticDataCollection); return returnPrameterHttpResponse; } } } ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2018 lulianqi (mycllq@hotmail.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: MyHelper/MyExtensionMethods.cs ================================================ using FreeHttp.FiddlerHelper; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.MyHelper { public static class MyExtensionMethods { public static List MyClone(this List list) { List returnList = new List(); //foreach(var tempVaule in list) //{ // returnList.Add(tempVaule); //} returnList.AddRange(list); return returnList; } public static T MyDeepClone(this T source) where T : IFiddlerHttpTamper { if (!typeof(T).IsSerializable) { throw new ArgumentException("Your type must be serializable.", "source"); } T cloneObj = default; using (Stream jsonStream = MyJsonHelper.JsonDataContractJsonSerializer.ObjectToJsonStream(source)) { cloneObj = MyJsonHelper.JsonDataContractJsonSerializer.JsonStreamToObject(jsonStream); } return cloneObj; } public static bool MyContains(this List list, T item) { if (item == null) { for (int j = 0; j < list.Count; j++) { if (list[j] == null) { return true; } } return false; } Type c = typeof(T); if (c == typeof(MyKeyValuePair)) { for (int j = 0; j < list.Count; j++) { if((list[j]).Equals(item)) { return true; } } return false; } else { return list.Contains(item); } } } } ================================================ FILE: MyHelper/MyGlobalHelper.cs ================================================ using FreeHttp.WebService.HttpServer; using System; using System.Collections.Generic; using System.Linq; using System.Security.Principal; using System.Text; using System.Threading.Tasks; namespace FreeHttp.MyHelper { public class MyGlobalHelper { public class GlobalMessageEventArgs : EventArgs { public bool IsErrorMessage { get; set; } public string Message { get; set; } public GlobalMessageEventArgs(bool isErrorMessage, string message) { IsErrorMessage = isErrorMessage; Message = message; } } public delegate void GetGlobalMessageEventHandler(object sender, GlobalMessageEventArgs yourMessage); /// /// it will called by other thread , you must keep the thread save /// public static GetGlobalMessageEventHandler OnGetGlobalMessage; public static FreeHttp.FreeHttpControl.MarkControlService markControlService; public static MyHttpListener myHttpListener; static MyGlobalHelper() { markControlService = new FreeHttp.FreeHttpControl.MarkControlService(1000); myHttpListener = new MyHttpListener(); } public static void PutGlobalMessage(object sender, GlobalMessageEventArgs yourMessage) { if(OnGetGlobalMessage!=null && yourMessage!=null) { OnGetGlobalMessage(sender, yourMessage); } } public static bool IsAdministrator() { WindowsIdentity identity = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(identity); return principal.IsInRole(WindowsBuiltInRole.Administrator); } } } ================================================ FILE: MyHelper/MyJsonHelper.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.MyHelper { public class MyJsonHelper { public class JsonDataContractJsonSerializer { /// /// 使用.net内置方法将对象序列号为str 对象需要使用[System.Runtime.Serialization.DataContract()]标记 /// /// /// public static string ObjectToJsonStr(object obj) { System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType()); using (MemoryStream stream = new MemoryStream()) { serializer.WriteObject(stream, obj); using (StreamReader sr = new StreamReader(stream)) { stream.Position = 0; return sr.ReadToEnd(); } } } public static Stream ObjectToJsonStream(object obj) { System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType()); MemoryStream stream = new MemoryStream(); serializer.WriteObject(stream, obj); return stream; } public static T JsonStringToObject(string str) { T serializeClass = default(T); System.Runtime.Serialization.Json.DataContractJsonSerializer ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T)); try { using (MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(str))) { serializeClass = (T)ser.ReadObject(ms); } } catch (Exception ex) { Console.WriteLine(ex.Message); serializeClass = default(T); } finally { } return serializeClass; } public static T JsonStreamToObject(Stream jsonStream) { T serializeClass = default(T); System.Runtime.Serialization.Json.DataContractJsonSerializer ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T)); try { jsonStream.Position = 0; serializeClass = (T)ser.ReadObject(jsonStream); } catch (Exception ex) { Console.WriteLine(ex.Message); serializeClass = default(T); } finally { } return serializeClass; } } } } ================================================ FILE: MyHelper/MyKeyValuePair.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.MyHelper { [Serializable] public class MyKeyValuePair :ICloneable { private TKey key; private TValue value; public TKey Key { get { return this.key; } set { this.key = value; } } public TValue Value { get { return this.value; } set { this.value = value; } } public MyKeyValuePair(TKey key, TValue value) { this.key = key; this.value = value; } public MyKeyValuePair() { this.key = default(TKey); this.value = default(TValue); } public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append('['); if (this.Key != null) { sb.Append(this.Key.ToString()); } sb.Append(", "); if (this.Value != null) { sb.Append(this.Value.ToString()); } sb.Append(']'); return sb.ToString(); } public bool Equals(MyKeyValuePair yourKvp) { if (yourKvp == null) { return false; } return (Key.Equals(yourKvp.key)&&Value.Equals(yourKvp.Value)); } //public new bool Equals(object obj) 用new重写,强制转换的目标类型不会调用该重载,使用override 只要类型对象指针是目标类型,都会调用目标重载 public override bool Equals(object obj) { if (typeof(MyKeyValuePair)==obj.GetType()) { return Equals((MyKeyValuePair)obj); } return base.Equals(obj); } public override int GetHashCode() { try { return key.GetHashCode() ^ value.GetHashCode(); } catch { return base.GetHashCode(); } } public object Clone() { return new MyKeyValuePair(key, value); } } } ================================================ FILE: MyHelper/SelfUpgradeHelp.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FreeHttp.MyHelper { public class SelfUpgradeHelp { private static HttpClient httpClient = new HttpClient(); private static string GetFreeHttpDllPath() { string path = null; try { string codeBase = System.Reflection.Assembly.GetExecutingAssembly().CodeBase; UriBuilder uri = new UriBuilder(codeBase); path = Uri.UnescapeDataString(uri.Path); //Path.GetDirectoryName(path); } catch { path = null; } finally { if(string.IsNullOrEmpty(path)) { path = Directory.GetCurrentDirectory() + "\\Scripts\\FreeHttp.dll"; } } return path; } private static async Task DownloadUpgradeFileAsync(string uri, string path) { if (File.Exists(path)) { try { File.Delete(path); } catch { return false; } } HttpResponseMessage response = await httpClient.GetAsync(uri); if (response.IsSuccessStatusCode) { Stream fileStrem = await response.Content.ReadAsStreamAsync(); using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None)) { await fileStrem.CopyToAsync(fs); fs.Close(); } } else { return false; } return true; } public static async Task UpdateDllAsync(string sourceFileUrl) { string path = GetFreeHttpDllPath(); string oldFilePath = path + ".oldversion"; string upgradeFile = Path.GetDirectoryName(path) + "/FreeHttpUpgradeFile"; try { if (File.Exists(oldFilePath)) { File.Delete(oldFilePath); } //https://lulianqi.com/file/FreeHttpUpgradeFile await DownloadUpgradeFileAsync(sourceFileUrl, upgradeFile); System.IO.File.Move(path, oldFilePath); System.IO.File.Move(upgradeFile, path); } catch(Exception ex) { return ex.Message; } return null; } } } ================================================ FILE: MyHelper/SerializableHelper.cs ================================================ using FreeHttp.FiddlerHelper; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml.Serialization; namespace FreeHttp.MyHelper { class SerializableHelper { public static void SerializeRuleList(ListView requestRuleListView, ListView reponseRuleListView) { string rulePath = "FreeHttp\\RuleData.xml"; if (requestRuleListView != null && reponseRuleListView!=null) { //dynamic List requestList = new List(); List responseList = new List(); foreach (ListViewItem tempItem in requestRuleListView.Items) { requestList.Add((FiddlerRequestChange)tempItem.Tag); } foreach (ListViewItem tempItem in reponseRuleListView.Items) { responseList.Add((FiddlerResponseChange)tempItem.Tag); } //Stream stream = File.Open("data.xml", FileMode.Create); TextWriter writer = new StreamWriter(rulePath, false); XmlSerializer serializer = new XmlSerializer(typeof(FiddlerModificHttpRuleCollection)); //serializer = new XmlSerializer(typeof(List)); serializer.Serialize(writer, new FiddlerModificHttpRuleCollection(requestList, responseList)); writer.Close(); //写入版本 System.Xml.XmlDocument xmlDocument = new System.Xml.XmlDocument(); xmlDocument.Load(rulePath); System.Xml.XmlAttribute dbAtt = xmlDocument.CreateAttribute("ruleVersion"); dbAtt.Value = WebService.UserComputerInfo.GetRuleVersion(); xmlDocument.SelectSingleNode("/FiddlerModificHttpRuleCollection")?.Attributes.Append(dbAtt); xmlDocument.Save(rulePath); } } public static FiddlerModificHttpRuleCollection DeserializeRuleList() { string rulePath = "FreeHttp\\RuleData.xml"; FiddlerModificHttpRuleCollection fiddlerModificHttpRuleCollection = null; if (File.Exists(rulePath)) { FileStream myFileStream = new FileStream(rulePath, FileMode.Open); try { using (System.Xml.XmlTextReader reader = new System.Xml.XmlTextReader(myFileStream)) { reader.Normalization = false; //版本控制 string ruleVersion = string.Empty; //System.Version version = new Version("2.0.0"); while (reader.Read()) { if (reader.NodeType == System.Xml.XmlNodeType.Element) { if (reader.Name == "FiddlerModificHttpRuleCollection") { ruleVersion = reader.GetAttribute("ruleVersion"); break; } } } if (string.IsNullOrEmpty(ruleVersion) || ruleVersion[0] == '1') { File.Copy(rulePath, rulePath + ".oldVersion", true); XmlSerializer mySerializer = new XmlSerializer(typeof(FreeHttp.FiddlerHelper.VersionControlV1.FiddlerModificHttpRuleCollection)); fiddlerModificHttpRuleCollection = (FiddlerModificHttpRuleCollection)(FreeHttp.FiddlerHelper.VersionControlV1.FiddlerModificHttpRuleCollection)mySerializer.Deserialize(reader); } else if(ruleVersion[0]=='2') { XmlSerializer mySerializer = new XmlSerializer(typeof(FiddlerModificHttpRuleCollection)); fiddlerModificHttpRuleCollection = (FiddlerModificHttpRuleCollection)mySerializer.Deserialize(reader); } else { throw new Exception("unkonw ruleVersion",new Exception("this freehttp can not analysis the rule file , you should updata your freehttp")); } } } catch(Exception ex) { MessageBox.Show(string.Format("{0}\r\n{1}\r\nyour error rule file will back up in {2}", ex.Message, ex.InnerException == null ? "" : ex.InnerException.Message, Directory.GetCurrentDirectory() + rulePath + ".lastErrorFile"), "load user rule fail"); _ = WebService.RemoteLogService.ReportLogAsync($"load user rule fail [{ex.ToString()}]", WebService.RemoteLogService.RemoteLogOperation.WindowLoad, WebService.RemoteLogService.RemoteLogType.Error); File.Copy(rulePath, rulePath+".lastErrorFile", true); } finally { myFileStream.Close(); } } return fiddlerModificHttpRuleCollection; } /// ///[Serializable] 标记类 (公共成员默认被序列化) ///[NonSerialized] 标记不需要序列化的成员 (只对终端field有效 , 属性可以使用[System.Xml.Serialization.XmlIgnore]) /// Serializable 需要空参数的构造函数 /// /// /// /// public static void SerializeData(T modificSettingInfo, string filePath) { if (modificSettingInfo != null) { TextWriter writer = new StreamWriter(filePath, false); XmlSerializer serializer = new XmlSerializer(typeof(T)); //serializer = new XmlSerializer(typeof(List)); serializer.Serialize(writer, modificSettingInfo); writer.Close(); } } public static T DeserializeData(string filePath) { T modificSettingInfo = default(T); //对于数值类型会返回零。 对于结构,此关键字将返回初始化为零或 null 的每个结构成员,具体取决于这些结构是值类型还是引用类型,对于数值类型会返回零。 对于结构,此关键字将返回初始化为零或 null 的每个结构成员,具体取决于这些结构是值类型还是引用类型 if (File.Exists(filePath)) { XmlSerializer mySerializer = new XmlSerializer(typeof(T)); FileStream myFileStream = new FileStream(filePath, FileMode.Open); try { //modificSettingInfo = (T)mySerializer.Deserialize(myFileStream); //默认使用XmlReader ( It doesn't have a property for controlling normalization, as the XmlTextReader does.) 导致\r\n被反序列化为\n using (System.Xml.XmlTextReader reader = new System.Xml.XmlTextReader(myFileStream)) { reader.Normalization = false; modificSettingInfo = (T)mySerializer.Deserialize(reader); } } catch (Exception ex) { MessageBox.Show(string.Format("{0}\r\n{1}", ex.Message, ex.InnerException == null ? "" : ex.InnerException.Message), "DeserializeData fail"); File.Copy(filePath, string.Format("{0}.lastErrorFile", filePath), true); modificSettingInfo = default(T); } finally { myFileStream.Close(); } } return modificSettingInfo; } /// /// 『DataMemberAttribute Class』 /// 使用 [DataContract()] 标记class /// 【如果要使用[Serializable] 默认序列化公开字段及属性,且要求其有公开的Set,用[DataContract]指没有这个限制,使用 [DataMember(Name = "ID")] / [DataMember] 标记成员】 /// 使用 [DataMember(Name = "ID")] / [DataMember] 标记成员 /// 并且不要求成员访问修饰符为public /// /// /// /// public static void SerializeContractData(T serializeClass, string filePath) { if (serializeClass != null) { FileStream fs = new FileStream(filePath, FileMode.Create); System.Xml.XmlDictionaryWriter writer = System.Xml.XmlDictionaryWriter.CreateTextWriter(fs); System.Runtime.Serialization.DataContractSerializer ser = new System.Runtime.Serialization.DataContractSerializer(typeof(T)); ser.WriteObject(writer, serializeClass); writer.Close(); fs.Close(); } } public static T DeserializeContractData(string filePath) { T serializeClass = default(T); //对于数值类型会返回零。 对于结构,此关键字将返回初始化为零或 null 的每个结构成员,具体取决于这些结构是值类型还是引用类型,对于数值类型会返回零。 对于结构,此关键字将返回初始化为零或 null 的每个结构成员,具体取决于这些结构是值类型还是引用类型 if (File.Exists(filePath)) { FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate); DataContractSerializer ser = new DataContractSerializer(typeof(T)); try { serializeClass = (T)ser.ReadObject(fs); } catch (Exception ex) { MessageBox.Show(string.Format("{0}\r\n{1}", ex.Message, ex.Message, ex.InnerException == null ? "" : ex.InnerException.Message), "DeserializeContractData Fail"); File.Copy(filePath, string.Format("{0}.lastErrorFile", filePath), true); serializeClass = default(T); } finally { fs.Close(); } } return serializeClass; } } } ================================================ FILE: Properties/AssemblyInfo.cs ================================================ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 有关程序集的常规信息通过以下 // 特性集控制。更改这些特性值可修改 // 与程序集关联的信息。 [assembly: AssemblyTitle("FreeHttp")] [assembly: AssemblyDescription("mycllq@hotmail.com")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("mycllq@hotmail.com")] [assembly: AssemblyProduct("FreeHttp")] [assembly: AssemblyCopyright("mycllq@hotmail.com")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // 将 ComVisible 设置为 false 使此程序集中的类型 // 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, // 则将该类型上的 ComVisible 特性设置为 true。 [assembly: ComVisible(false)] // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID [assembly: Guid("a65f9dc7-6140-4720-8445-406682cb12bc")] // 程序集的版本信息由下面四个值组成: // // 主版本 // 次版本 // 生成号 // 修订号 // // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, // 方法是按如下所示使用“*”: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("2.3.0")] [assembly: AssemblyFileVersion("2.0.0")] ================================================ FILE: Properties/Resources.Designer.cs ================================================ //------------------------------------------------------------------------------ // // 此代码由工具生成。 // 运行时版本:4.0.30319.42000 // // 对此文件的更改可能会导致不正确的行为,并且如果 // 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ namespace FreeHttp.Properties { using System; /// /// 一个强类型的资源类,用于查找本地化的字符串等。 /// // 此类是由 StronglyTypedResourceBuilder // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen // (以 /str 作为命令选项),或重新生成 VS 项目。 [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal Resources() { } /// /// 返回此类使用的缓存的 ResourceManager 实例。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FreeHttp.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } /// /// 重写当前线程的 CurrentUICulture 属性,对 /// 使用此强类型资源类的所有资源查找执行重写。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap _goto { get { object obj = ResourceManager.GetObject("goto", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap add { get { object obj = ResourceManager.GetObject("add", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap cancel { get { object obj = ResourceManager.GetObject("cancel", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap close { get { object obj = ResourceManager.GetObject("close", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap cloud { get { object obj = ResourceManager.GetObject("cloud", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap copy { get { object obj = ResourceManager.GetObject("copy", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap copy_value { get { object obj = ResourceManager.GetObject("copy_value", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap delete_value { get { object obj = ResourceManager.GetObject("delete_value", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap group { get { object obj = ResourceManager.GetObject("group", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap httpEnable { get { object obj = ResourceManager.GetObject("httpEnable", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap minimize { get { object obj = ResourceManager.GetObject("minimize", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap move { get { object obj = ResourceManager.GetObject("move", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap noParameter { get { object obj = ResourceManager.GetObject("noParameter", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap remove { get { object obj = ResourceManager.GetObject("remove", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap rename { get { object obj = ResourceManager.GetObject("rename", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap select { get { object obj = ResourceManager.GetObject("select", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap unselect { get { object obj = ResourceManager.GetObject("unselect", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap useParameter { get { object obj = ResourceManager.GetObject("useParameter", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap wsEnable { get { object obj = ResourceManager.GetObject("wsEnable", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap zoombig { get { object obj = ResourceManager.GetObject("zoombig", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap zoomsmall { get { object obj = ResourceManager.GetObject("zoomsmall", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } } } ================================================ FILE: Properties/Resources.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ..\Resources\noParameter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\cloud.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\rename.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\wsEnable.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\delete_value.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\cancel5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\zoomsmall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\move.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\zoombig.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\copy_value.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\remove.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\goto.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\httpEnable.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\useParameter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\unselect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\minimize.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\add.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\group.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\copy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ================================================ FILE: Resources/MyResource.Designer.cs ================================================ //------------------------------------------------------------------------------ // // 此代码由工具生成。 // 运行时版本:4.0.30319.42000 // // 对此文件的更改可能会导致不正确的行为,并且如果 // 重新生成代码,这些更改将会丢失。 // //------------------------------------------------------------------------------ namespace FreeHttp.Resources { using System; /// /// 一个强类型的资源类,用于查找本地化的字符串等。 /// // 此类是由 StronglyTypedResourceBuilder // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen // (以 /str 作为命令选项),或重新生成 VS 项目。 [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class MyResource { private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal MyResource() { } /// /// 返回此类使用的缓存的 ResourceManager 实例。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FreeHttp.Resources.MyResource", typeof(MyResource).Assembly); resourceMan = temp; } return resourceMan; } } /// /// 重写当前线程的 CurrentUICulture 属性 /// 重写当前线程的 CurrentUICulture 属性。 /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } set { resourceCulture = value; } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap add_mode { get { object obj = ResourceManager.GetObject("add_mode", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap edit_mode { get { object obj = ResourceManager.GetObject("edit_mode", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap filter_off { get { object obj = ResourceManager.GetObject("filter_off", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap filter_on { get { object obj = ResourceManager.GetObject("filter_on", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap freehttp { get { object obj = ResourceManager.GetObject("freehttp", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。 /// internal static System.Drawing.Icon freehttpico { get { object obj = ResourceManager.GetObject("freehttpico", resourceCulture); return ((System.Drawing.Icon)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap naozhong_off { get { object obj = ResourceManager.GetObject("naozhong_off", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap naozhong_on { get { object obj = ResourceManager.GetObject("naozhong_on", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap pick_off { get { object obj = ResourceManager.GetObject("pick_off", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap pick_on { get { object obj = ResourceManager.GetObject("pick_on", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap show { get { object obj = ResourceManager.GetObject("show", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap switch_off { get { object obj = ResourceManager.GetObject("switch_off", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } /// /// 查找 System.Drawing.Bitmap 类型的本地化资源。 /// internal static System.Drawing.Bitmap switch_on { get { object obj = ResourceManager.GetObject("switch_on", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } } } ================================================ FILE: Resources/MyResource.resx ================================================  text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 add_mode.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a edit_mode.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a filter_off.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a filter_on.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a freehttp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a freehttpico.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a naozhong_off.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a naozhong_on.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a pick_off.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a pick_on.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a show.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 开关_关.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 开关_开.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ================================================ FILE: WebService/ConfigurationData.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService { public class ConfigurationData { private static readonly String url_dev = "http://localhost:5000/"; private static readonly String url_pro = "https://api.lulianqi.com/"; private static readonly String rule_version = "2.0"; public static string BaseUrl { get { return url_pro; } } public static string RuleVersion { get { return rule_version; } } } } ================================================ FILE: WebService/DataModel/BaseResultModel.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService.DataModel { [DataContract] public enum ReturnStatus { Success = 0, Fail = 1, Error = 2 } [DataContract] public class BaseResultModel { public BaseResultModel(int? code = 0, string message = null, T result = default, ReturnStatus returnStatus = ReturnStatus.Success) { this.Code = code ?? 0; this.Message = message; this.Status = returnStatus; this.Result = result; } [DataMember] public int Code { get; set; } [DataMember] public string Message { get; set; } [DataMember] public T Result { get; set; } [DataMember] public ReturnStatus Status { get; set; } } } ================================================ FILE: WebService/DataModel/RuleDetails.cs ================================================ using FreeHttp.AutoTest.RunTimeStaticData; using FreeHttp.FiddlerHelper; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService.DataModel { [DataContract] public class RuleDetails { [DataContract] public class RuleCell { public RuleCell() { } [DataMember] public string RuleContent { get; set; } [DataMember] public string RuleVersion { get; set; } } public RuleDetails() { RequestRuleCells = new List(); ResponseRuleCells = new List(); } [DataMember] public List RequestRuleCells { get; set; } [DataMember] public List ResponseRuleCells { get; set; } [DataMember] public RuleCell RuleStaticDataCell { get; set; } [DataMember] public RuleCell RuleGroupCell { get; set; } /// /// 备注 只要Share RuleDetails 才会有 /// [DataMember] public String Remark { get; set; } public FiddlerModificHttpRuleCollection ModificHttpRuleCollection { get; set; } public ActuatorStaticDataCollection StaticDataCollection { get; set; } public FiddlerRuleGroup RuleGroup { get; set; } } } ================================================ FILE: WebService/DataModel/ShareRuleSummary.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService.DataModel { public class ShareRuleSummary { public class RuleToken { public string Token { get; set; } public string Remark { get; set; } public string ShowTag { get { return $"...{Token.Substring(Token.Length > 22 ? 22 : 0)} [{Remark??"-"}]"; } } public string ShowWholeTag { get { return $"{Token} [{Remark ?? "-"}]"; } } } public List ShareRuleList { get; set; } public List PrivateRuleList { get; set; } } } ================================================ FILE: WebService/FeedbackService.cs ================================================ //#define NET4_5UP using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService { public class FeedbackService { [System.Runtime.Serialization.DataContract()] public class Feedback { [System.Runtime.Serialization.DataMember()] public string user_token { get; set; } [System.Runtime.Serialization.DataMember()] public string user_mac { get; set; } [System.Runtime.Serialization.DataMember()] public string machine_name { get; set; } [System.Runtime.Serialization.DataMember()] public string contact_infomation { get; set; } [System.Runtime.Serialization.DataMember()] public string feedback_content { get; set; } public Feedback(string token ,string mac, String machine, string contact, string content) { user_token = token; user_mac = mac; machine_name = machine; contact_infomation = contact; feedback_content = content; } } #if NET4_5UP public static async Task SubmitFeedbackAsync(string userToken ,string mac, String machine, string contact, string content) { return await SubmitFeedbackAsync(new Feedback(userToken ,mac, machine, contact, content)); } public static async Task SubmitFeedbackAsync(Feedback feedback) { if (feedback == null) return -1; Func SubmitFeedbackTask = new Func(() => { //使用 Fiddler.WebFormats.JSON.JsonEncode 不要引入 第三方 库, 或者需要使用DataContract注解 string feedbackBody = String.Format("{{ \"user_mac\":{0},\"machine_name\":{1},\"feedback_content\":{2},\"contact_infomation\": {3}}}" , Fiddler.WebFormats.JSON.JsonEncode(feedback.user_mac), Fiddler.WebFormats.JSON.JsonEncode(feedback.machine_name), Fiddler.WebFormats.JSON.JsonEncode(feedback.feedback_content), Fiddler.WebFormats.JSON.JsonEncode(feedback.contact_infomation)); int responseCode = (new WebService.MyWebTool.MyHttp()).SendHttpRequest(string.Format("{0}freehttp/Feedback", ConfigurationData.BaseUrl), MyHelper.MyJsonHelper.JsonDataContractJsonSerializer.ObjectToJsonStr(feedback), "POST", new List>() { new KeyValuePair("Content-Type", "application/json") }, false, null, null).StatusCode; return responseCode; }); int code = await Task.Run(SubmitFeedbackTask); return code; } #endif #if NET4 //因为.net4.5 以下没有Task.Run,该方法用于低版本编译 public static void SubmitFeedbackTask(string mac, string contact, string content,Action showResult) { Task submitFeedback = new Task(() => { Feedback feedback = new Feedback(mac, contact, content); string feedbackBody = String.Format("{{ \"user_mac\":{0},\"feedback_content\":{1},\"contact_infomation\": {2}}}" , Fiddler.WebFormats.JSON.JsonEncode(feedback.user_mac), Fiddler.WebFormats.JSON.JsonEncode(feedback.feedback_content), Fiddler.WebFormats.JSON.JsonEncode(feedback.contact_infomation)); int responseCode = (new WebService.MyWebTool.MyHttp()).SendHttpRequest(string.Format("{0}freehttp/Feedback", ConfigurationData.BaseUrl), feedbackBody, "POST", new List>() { new KeyValuePair("Content-Type", "application/json") }, false, null, null).StatusCode; return responseCode; }); submitFeedback.Start(); submitFeedback.ContinueWith((task) => { showResult(task.Result); }) ; } #endif } } ================================================ FILE: WebService/HttpServer/CertificatesHelper.cs ================================================ using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService.HttpServer { public class CertificatesHelper { public static bool SetupSsl(int port) { System.Security.Cryptography.X509Certificates.X509Store store = new System.Security.Cryptography.X509Certificates.X509Store(System.Security.Cryptography.X509Certificates.StoreLocation.LocalMachine); //Use the first cert to configure Ssl store.Open(System.Security.Cryptography.X509Certificates.OpenFlags.ReadOnly); //Assumption is we have certs. If not then this call will fail :( try { bool found = false; foreach (System.Security.Cryptography.X509Certificates.X509Certificate2 cert in store.Certificates) { String certHash = cert.GetCertHashString(); //Only install certs issued for the machine and has the name as the machine name if (cert.Subject.ToUpper().IndexOf(Environment.MachineName.ToUpper()) >= 0) { try { found = true; //ExecuteNetsh(String.Format("set ssl -i 0.0.0.0:{1} -c \"MY\" -h {0}", certHash, port)); ExecuteNetsh(string.Format("http add sslcert ipport=0.0.0.0:{0} certhash={1} appid={{{2}}}", port, certHash, Guid.NewGuid().ToString())); } catch (Exception e) { return false; } } } if (!found) { return false; } } catch (Exception e) { return false; } finally { if (store != null) { store.Close(); } } return true; } public static void AddCertificateToX509Store(X509Certificate2 cert) { var store = new X509Store(StoreName.My, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadWrite); //ensure pfx in cert. byte[] pfx = cert.Export(X509ContentType.Pfx); cert = new X509Certificate2(pfx, (string)null, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet); //then store store.Add(cert); store.Close(); } public static void BindingCertificate(X509Certificate2 cert, int port) { if (cert == null) { throw new ArgumentNullException("your X509Certificate2 is null"); } String certHash = cert.GetCertHashString(); BindingCertificate(certHash,port); } public static void BindingCertificate(String certHash, int port) { if (certHash == null) { throw new ArgumentNullException("your certHash is null"); } ExecuteNetsh(string.Format("http add sslcert ipport=0.0.0.0:{0} certhash={1} appid={{{2}}} clientcertnegotiation=enable ", port, certHash, Guid.NewGuid().ToString())); } private static void ExecuteNetsh(string arguments) { //netsh http add sslcert ipport=0.0.0.0:8443 certhash=585947f104b5bce53239f02d1c6fed06832f47dc appid={df8c8073-5a4b-4810-b469-5975a9c95230} ProcessStartInfo procStartInfo = new ProcessStartInfo("netsh", arguments); procStartInfo.RedirectStandardOutput = true; procStartInfo.UseShellExecute = false; procStartInfo.CreateNoWindow = true; Process.Start(procStartInfo); } } } ================================================ FILE: WebService/HttpServer/MyHttpListener.cs ================================================ //#define NET4_5UP using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService.HttpServer { public class MyHttpListener { public class HttpListenerMessageEventArgs : EventArgs { public bool IsErrorMessage { get; set; } public string Message{ get; set; } public HttpListenerMessageEventArgs(bool isErrorMessage, string message) { IsErrorMessage = isErrorMessage; Message = message; } } HttpListener listener; public event EventHandler OnGetHttpListenerMessage; public MyHttpListener() { if (!HttpListener.IsSupported) { return; } listener = new HttpListener(); } public bool IsStart { get { return listener == null ? false : listener.IsListening; } } public bool Start(string prefixes) { return Start(new string[] { prefixes },true); } public bool Start(string[] prefixesArray ,bool isClear) { if (!HttpListener.IsSupported) { throw new Exception("not supported"); } //listener.Prefixes.Add("http://localhost:9998/"); //listener.Prefixes.Add("https://localhost:44399/"); //listener.Prefixes.Add("https://*:443/"); //listener.Prefixes.Add("https://*:9996/"); //listener.Prefixes.Add("https://*:9996/test/"); try { if (isClear) { listener.Prefixes.Clear(); } foreach(var prefixes in prefixesArray) { listener.Prefixes.Add(prefixes); } } catch (Exception ex) { throw ex; } try { if (!listener.IsListening) listener.Start(); } catch (Exception ex) { throw ex; } #if NET4_5UP ListenerAsync(); return true; #endif #if NET4 System.Threading.Thread ListenerThread = new System.Threading.Thread(new System.Threading.ThreadStart(ListenerWorker)); ListenerThread.Name = "ListenerThread"; ListenerThread.Priority = System.Threading.ThreadPriority.Normal; ListenerThread.IsBackground = true; ListenerThread.Start(); #endif } public void Close() { if (listener != null ) { Stop(); listener.Close(); } } public void Stop() { if (listener != null && listener.IsListening) { listener.Stop(); } } #if NET4_5UP private async void ListenerAsync() { HttpListenerContext context; string responseString = "Hello FreeHttp"; byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString); while (listener.IsListening) { try { context = await listener.GetContextAsync(); HttpListenerRequest request = context.Request; HttpListenerResponse response = context.Response; response.ContentLength64 = buffer.Length; System.IO.Stream output = response.OutputStream; await output.WriteAsync(buffer, 0, buffer.Length); output.Close(); } catch(Exception ex) { if(!IsStart) { return; } else { if(OnGetHttpListenerMessage!=null) { this.OnGetHttpListenerMessage(this, new HttpListenerMessageEventArgs(true, ex.Message)); } } } } } #endif private void ListenerWorker() { while(listener.IsListening) { // Note: The GetContext method blocks while waiting for a request. HttpListenerContext context = listener.GetContext(); HttpListenerRequest request = context.Request; // Obtain a response object. HttpListenerResponse response = context.Response; // Construct a response. string responseString = "ok"; byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString); // Get a response stream and write the response to it. response.ContentLength64 = buffer.Length; System.IO.Stream output = response.OutputStream; output.Write(buffer, 0, buffer.Length); // You must close the output stream. output.Close(); //listener.Stop(); } } } } ================================================ FILE: WebService/HttpServer/MySocketHelper.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.NetworkInformation; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService.HttpServer { public class MySocketHelper { public static bool IsPortInTcpListening(int port) { IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties(); IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners(); foreach (IPEndPoint endPoint in ipEndPoints) { if (endPoint.Port == port) { return true; } } return false; } } } ================================================ FILE: WebService/MyWebTool.cs ================================================ using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.Net; using System.IO; using System.Collections.Specialized; using System.Linq; using System.Security.Cryptography.X509Certificates; /******************************************************************************* * Copyright (c) 2015 lijie * All rights reserved. * * 文件名称: * 内容摘要: mycllq@hotmail.com * * 历史记录: * 日 期: 201505016 创建人: 李杰 15158155511 * 描 述: 创建 (this file is from https://github.com/lulianqi/AutoTest/blob/master/AutoTest/MyCommonHelper/NetHelper/MyWebTool.cs) *******************************************************************************/ //from https://github.com/lulianqi/AutoTest/blob/master/AutoTest/MyCommonHelper/NetHelper/MyWebTool.cs namespace FreeHttp.WebService { public class MyWebTool { public class HttpMultipartDate { /** eg: -----------------8d46c074125a195 Content-Disposition: form-data; name="name"; filename="filenmae" Content-Type: application/octet-stream testdata -----------------8d46c074125a195-- * */ /// /// name属性值,为null则不加 /// public string Name { get; set; } /// /// filename属性值,为null则不加 /// public string FileName { get; set; } /// /// Multipart下Content-Type: application/octet-stream,为null则不加 /// public string ContentType { get; set; } /// /// 是否把fileData当作文件路径处理 /// public bool IsFile { get; set; } /// /// 文件内容或文件路径。为null则当作"" /// public string FileData { get; set; } public HttpMultipartDate() { Name = FileName = ContentType = FileData = null; } /// /// 初始化 HttpMultipartDate /// /// name属性值,为null则不加 /// filename属性值,为null则不加 /// Multipart下Content-Type: application/octet-stream,为null则为默认值application/octet-stream /// 是否把fileData当作文件路径处理 /// 文件内容或文件路径。为null则当作""(作为路径时如果路径不存在将会返回错误) public HttpMultipartDate(string yourName, string yourFileName, string yourContentType, bool yourIsFile, string yourFileData) { Name = yourName; FileName = yourFileName; ContentType = yourContentType; IsFile = yourIsFile; FileData = yourFileData; } } public class HttpHelper { private delegate void SetHeadAttributeCallback(HttpWebRequest yourRequest, string yourHeadValue); private static Dictionary dicHeadSetFun = new Dictionary(); static HttpHelper() { dicHeadSetFun.Add("Accept".ToUpper(), new SetHeadAttributeCallback((yourRequest, yourHeadValue) => yourRequest.Accept = yourHeadValue)); dicHeadSetFun.Add("Connection".ToUpper(), new SetHeadAttributeCallback((yourRequest, yourHeadValue) => { string tempHeadVaule = yourHeadValue.ToLower(); if (tempHeadVaule.IndexOf("keep-alive") != -1) { yourRequest.KeepAlive = true; } else if (tempHeadVaule.IndexOf("closee") != -1) { yourRequest.KeepAlive = false; } else { yourRequest.Connection = yourHeadValue; } })); dicHeadSetFun.Add("Date".ToUpper(), new SetHeadAttributeCallback((yourRequest, yourHeadValue) => { DateTime tempTime; if (!DateTime.TryParse(yourHeadValue, out tempTime)) tempTime = DateTime.Now; yourRequest.Date = tempTime; })); //2009-05-01 14:57:32 //修改该头需要4.0版本支持,如果升级4.0可以取消该注释,启用该功能 //dicHeadSetFun.Add("KeepAlive".ToUpper(), new SetHeadAttributeCallback((yourRequest, yourHeadValue) => yourRequest.KeepAlive = yourHeadValue));//该头可以直接使用Headers.Add dicHeadSetFun.Add("Transfer-Encoding".ToUpper(), new SetHeadAttributeCallback((yourRequest, yourHeadValue) => yourRequest.TransferEncoding = yourHeadValue)); dicHeadSetFun.Add("Content-Length".ToUpper(), new SetHeadAttributeCallback((yourRequest, yourHeadValue) => { int tempLen; if (!int.TryParse(yourHeadValue, out tempLen)) tempLen = 0; yourRequest.ContentLength = tempLen; })); dicHeadSetFun.Add("Content-Type".ToUpper(), new SetHeadAttributeCallback((yourRequest, yourHeadValue) => yourRequest.ContentType = yourHeadValue)); dicHeadSetFun.Add("Expect".ToUpper(), new SetHeadAttributeCallback((yourRequest, yourHeadValue) => yourRequest.Expect = yourHeadValue)); dicHeadSetFun.Add("Host".ToUpper(), new SetHeadAttributeCallback((yourRequest, yourHeadValue) => yourRequest.Host = yourHeadValue)); //修改该头需要4.0版本支持,如果升级4.0可以取消该注释,启用该功能 dicHeadSetFun.Add("IfModifiedSince".ToUpper(), new SetHeadAttributeCallback((yourRequest, yourHeadValue) => yourRequest.Referer = yourHeadValue)); dicHeadSetFun.Add("Referer".ToUpper(), new SetHeadAttributeCallback((yourRequest, yourHeadValue) => yourRequest.Referer = yourHeadValue)); dicHeadSetFun.Add("User-Agent".ToUpper(), new SetHeadAttributeCallback((yourRequest, yourHeadValue) => yourRequest.UserAgent = yourHeadValue)); } /// /// 添加http请求头属性(特殊属性自动转化为dicHeadSetFun中委托完成设置) /// /// HttpWebRequest /// 属性列表 public static void AddHttpHeads(HttpWebRequest httpWebRequest, List> heads) { if (httpWebRequest == null) { return; } if (heads != null && heads.Count > 0) { foreach (var Head in heads) { if (dicHeadSetFun.ContainsKey(Head.Key.ToUpper())) { (dicHeadSetFun[Head.Key.ToUpper()])(httpWebRequest, Head.Value); } else { httpWebRequest.Headers.Add(Head.Key, Head.Value); } } } } /// /// 添加http请求头属性(全部使用默认header.Add进行添加,失败后使用SetHeaderValue进行添加,不过依然可能失败) /// /// WebHeaderCollection /// 属性列表 public static void AddHttpHeads(WebHeaderCollection header, List> heads) { if (header == null) { return; } if (heads != null) { //wr.Headers.Add(new NameValueCollection()); foreach (var Head in heads) { try { header.Add(Head.Key, Head.Value); //((HttpWebRequest)wr).Headers.Add(HttpRequestHeader.Host, "www.contoso.com"); //必须用适当的属性修改host 使用4.0也报必须使用适当的属性或方法修改“Host”标头 //((HttpWebRequest)wr).Headers.Add("Host", "192.168.0.1");//这样一样不行 //SetHeaderValue(wr.Headers, "Host", "www.contoso.com:8080");//即使是4.0也无法直接修改 //((HttpWebRequest)wr).Host = "www.contoso.com:8080";//只有这种方式在4.0可以生效 } catch (Exception ex) { SetHeaderValue(header, Head.Key, Head.Value); MyHttp.GetError(ex); } } } } /// /// 设置请求头(注意该方法未经过测试,使用前请先测试) /// /// WebHeaderCollection /// key /// value public static void SetHeaderValue(WebHeaderCollection header, string name, string value) { var property = typeof(WebHeaderCollection).GetProperty("InnerCollection", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); if (property != null) { var collection = property.GetValue(header, null) as NameValueCollection; collection[name] = value; } } } public class HttpTimeLine { /// /// 开始时间 /// public DateTime StartTime { get; set; } /// /// 耗时(毫秒为单位) /// public long ElapsedTime { get; set; } public HttpTimeLine() { ElapsedTime = 0; } } /// /// 使用前请先查看ErrorMes是否有错误信息 /// public class MyHttpResponse { private int statusCode = -99; private string responseLine = null; private string responseBody = null; private string responseRaw = null; private string errorMes = null; public HttpTimeLine TimeLine { get; internal set; } public HttpWebResponse HttpResponse { get; internal set; } public string ErrorMes { get { return errorMes; } internal set { errorMes = value; responseBody = value; } } public MyHttpResponse() { TimeLine = null; HttpResponse = null; } public int StatusCode { get { if (HttpResponse == null) { return 0; } if (statusCode == -99) { statusCode = (int)HttpResponse.StatusCode; } return statusCode; } } public string ResponseLine { get { if (responseLine == null && HttpResponse != null) { responseLine = string.Format(@"HTTP/{0} {1} {2}", HttpResponse.ProtocolVersion == null ? "NULL" : HttpResponse.ProtocolVersion.ToString(), StatusCode, HttpResponse.StatusCode == null ? "NULL" : HttpResponse.StatusCode.ToString()); } return responseLine; } } public WebHeaderCollection ResponseHeads { get { if (HttpResponse == null) { return null; } return HttpResponse.Headers; } } /// /// 获取Response Body(如果返回null则表示请求未发起,错误原因通过ErrorMes查看) /// public string ResponseBody { get { if (responseBody == null && HttpResponse != null) { SeekResponseStream(); } return responseBody; } } /// /// 获取Response Raw格式的报文(如果返回null则表示请求未发起,错误原因通过ErrorMes查看) /// public string ResponseRaw { get { if (errorMes != null) { return null; } if (responseRaw == null && HttpResponse != null) { responseRaw = string.Format("{0}\r\n{1}{2}", ResponseLine ?? "NULL", ResponseHeads.ToString(), ResponseBody ?? "NULL"); } return responseRaw; } } internal void SavaData(string saveFileName) { Stream receiveStream = null; try { using (FileStream stream = new FileStream(saveFileName, FileMode.Create, FileAccess.Write, FileShare.Write)) { receiveStream = HttpResponse.GetResponseStream(); int tempReadCount = 1024; byte[] infbytes = new byte[tempReadCount]; //反复使用前也不要清空,因为后面写入会指定有效长度 int tempLen = tempReadCount; int offset = 0; while (tempLen >= tempReadCount) { tempLen = receiveStream.Read(infbytes, 0, tempReadCount); stream.Write(infbytes, 0, tempLen);//FileStream 内建缓冲区,不用自己构建缓存写入,FileStream的offset会自动维护,也可以使用stream.Position强制指定 offset += tempLen; } responseBody = string.Format("file save success in [ {0} ] with {1}byte", saveFileName, offset); } #region WriteAllBytes /** byte[] infbytes = new byte[10240]; int tempLen = 512; int offset = 0; //数据最多20k可以不需要分段读取 while (tempLen - 512 >= 0) { tempLen = ReceiveStream.Read(infbytes, offset, 512); offset += tempLen; } byte[] bytesToSave = new byte[offset]; for (int i = 0; i < offset; i++) { bytesToSave[i] = infbytes[i]; } File.WriteAllBytes(saveFileName, bytesToSave); */ #endregion } catch (Exception ex) { responseBody = string.Format("file save fail with [ {0} ] ", ex.Message); } finally { if (receiveStream != null) { receiveStream.Close(); } } } internal void SeekResponseStream() { if (HttpResponse != null && responseBody == null) { Stream receiveStream = HttpResponse.GetResponseStream(); Encoding nowEncoding; try { nowEncoding = string.IsNullOrEmpty(HttpResponse.CharacterSet) ? Encoding.UTF8 : Encoding.GetEncoding(HttpResponse.CharacterSet); } catch { nowEncoding = Encoding.UTF8; } try { using (var responseStreamReader = new StreamReader(receiveStream, nowEncoding)) //will close the HttpResponse Stream { responseBody = responseStreamReader.ReadToEnd(); } } catch (Exception ex) { responseBody = ex.Message; } #region Read //使用如下方法自己读取byte[] 是可行的,不过在Encoding 可变编码方式时,不能确保分段不被截断,直接使用内置StreamReader也是可以的 /** Byte[] read = new Byte[512]; int bytes = receiveStream.Read(read, 0, 512); if (showResponseHeads) { re = result.Headers.ToString(); } while (bytes > 0) { re += responseEncoding.GetString(read, 0, bytes); bytes = receiveStream.Read(read, 0, 512); } * */ #endregion } } } public class MyHttp { private int httpTimeOut = 100000; //http time out ,SendData and HttpPostData will use this value (连接超时) private int httpReadWriteTimeout = 300000; //WebRequest.ReadWriteTimeout [未使用] (读取/写入超时) private string defaultContentType = null; //请求默认ContentType (Content-Type: text/plain; charset=utf-8) private bool withDefaultCookieContainer = false; //是否默认启用CookieContainer,如果启用则默认会管理所有使用MyHttp的cookie内容 private bool recordRequestTimeLine = true; //是否记录请求时间线 private readonly string EOF = "\r\n"; private CookieContainer cookieContainer; private List> requestDefaultHeads; public Encoding RequestEncoding { get; set; } //需要发送数据,将使用此编码 [未使用] public Encoding ResponseEncoding { get; set; } //如果要显示返回数据,返回数据将使用此编码 [未使用] /// /// get or set HttpTimeOut /// public int HttpTimeOut { get { return httpTimeOut; } set { httpTimeOut = value; } } /// /// get or set default ContentType /// public string DefaultContentType { get { return defaultContentType; } set { defaultContentType = value; } } /// /// get is record RequestTimeLine /// public bool IsrecordRequestTimeLine { get { return recordRequestTimeLine; } } /// /// get or set is use DefaultCookieContainer /// public bool IsWithDefaultCookieContainer { get { return withDefaultCookieContainer; } set { withDefaultCookieContainer = value; } } /// /// get Inner CookieContainer /// public CookieContainer InnerCookieContainer { get { return cookieContainer; } } /// /// get default request heads /// public List> RequestDefaultHeads { get { return requestDefaultHeads; } } static MyHttp() { //ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback( // (sender, certificate, chain, sslPolicyErrors) => { return true; }); ServicePointManager.ServerCertificateValidationCallback = MyRemoteCertificateValidationCallback; System.Net.ServicePointManager.DefaultConnectionLimit = 2000; //默认最大并发数有限,可以使用System.Net.ServicePointManager.DefaultConnectionLimit重设该值 } private static bool enableServerCertificateValidation = false; public static bool EnableServerCertificateValidation { get { return enableServerCertificateValidation; } set { enableServerCertificateValidation = value; if (enableServerCertificateValidation) { ServicePointManager.ServerCertificateValidationCallback = null; } else { ServicePointManager.ServerCertificateValidationCallback = MyRemoteCertificateValidationCallback; } } } private static bool MyRemoteCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { if (enableServerCertificateValidation && sslPolicyErrors != System.Net.Security.SslPolicyErrors.None) { return false; } return true; } public MyHttp() { //cookieContainer = new CookieContainer(5000, 500, 1000); cookieContainer = new CookieContainer(); requestDefaultHeads = new List>(); RequestEncoding = System.Text.Encoding.GetEncoding("UTF-8"); ResponseEncoding = System.Text.Encoding.GetEncoding("UTF-8"); } public MyHttp(bool isRecordRequestTimeLine, bool isWithDefaultCookieContainer) : this() { recordRequestTimeLine = isRecordRequestTimeLine; withDefaultCookieContainer = isWithDefaultCookieContainer; } /// /// Send Http Request /// /// url (must start with protocol scheme like [http://,https:// ,ftp:// ,file:// ]) [ ://:@:/;?# ] /// queryStr will add to the url (like url+?+data ) if method is not POST or PUT queryStr will add in request entity as body /// GET/POST/PUT/HEAD/TRACE/OPTIONS/DELETE /// back data public string SendData(string url, string data, string method) { return SendData(url, data, method, null, null); } /// /// Send Http Request /// /// url (must start with protocol scheme like [http://,https:// ,ftp:// ,file:// ]) [ ://:@:/;?# ] /// back data public string SendData(string url) { return SendData(url, null, "GET", null, null); } /// /// Send Http Request /// /// url (must start with protocol scheme like [http://,https:// ,ftp:// ,file:// ]) [ ://:@:/;?# ] /// queryStr will add to the url (like url+?+data ) if method is not POST or PUT queryStr will add in request entity as body /// GET/POST/PUT/HEAD/TRACE/OPTIONS/DELETE /// http Head list (if not need set it null)(header 名是不区分大小写的) /// back data public string SendData(string url, string data, string method, List> heads) { return SendData(url, data, method, heads, null); } /// /// Send Http Request /// /// url (must start with protocol scheme like [http://,https:// ,ftp:// ,file:// ]) [ ://:@:/;?# ] /// queryStr will add to the url (like url+?+data ) if method is not POST or PUT queryStr will add in request entity as body /// GET/POST/PUT/HEAD/TRACE/OPTIONS/DELETE /// http Head list (if not need set it null)(header 名是不区分大小写的) /// save your response as file (if not need set it null) /// back data public string SendData(string url, string data, string method, List> heads, string saveFileName) { return SendData(url, data, method, heads, saveFileName, null); } /// /// Send Http Request /// /// url (must start with protocol scheme like [http://,https:// ,ftp:// ,file:// ]) [ ://:@:/;?# ] /// queryStr will add to the url (like url+?+data ) if method is not POST or PUT queryStr will add in request entity as body /// GET/POST/PUT/HEAD/TRACE/OPTIONS/DELETE /// http Head list (if not need set it null)(header 名是不区分大小写的) /// save your response as file (if not need set it null) /// ManualResetEvent 并发集合点 (if not need set it null) /// back data public string SendData(string url, string data, string method, List> heads, string saveFileName, System.Threading.ManualResetEvent manualResetEvent) { return SendData(url, data, method, heads, withDefaultCookieContainer, saveFileName, manualResetEvent); } /// /// Send Http Request /// /// url (must start with protocol scheme like [http://,https:// ,ftp:// ,file:// ]) [ ://:@:/;?# ] /// queryStr will add to the url (like url+?+data ) if method is not POST or PUT queryStr will add in request entity as body /// GET/POST/PUT/HEAD/TRACE/OPTIONS/DELETE /// http Head list (if not need set it null)(header 名是不区分大小写的) /// is use static CookieContainer (是否使用默认CookieContainer管理cookie,优先级高于withDefaultCookieContainer)(使用CookieContainer ,将不能手动在header中设置cookies) /// save your response as file (if not need set it null) /// ManualResetEvent 并发集合点 (if not need set it null) /// back data public string SendData(string url, string data, string method, List> heads, bool isAntoCookie, string saveFileName, System.Threading.ManualResetEvent manualResetEvent) { return SendHttpRequest(url, data, method, heads, isAntoCookie, saveFileName, manualResetEvent).ResponseBody; } // [ ://:@:/;?# ] /// /// Send Http Request /// /// url (must start with protocol scheme like [http://,https:// ,ftp:// ,file:// ]) /// queryStr will add to the url (like url+?+data ) if method is not POST or PUT queryStr will add in request entity as body /// GET/POST/PUT/HEAD/TRACE/OPTIONS/DELETE /// http Head list (if not need set it null)(header 名是不区分大小写的) /// is use static CookieContainer (是否使用默认CookieContainer管理cookie,优先级高于withDefaultCookieContainer)(使用CookieContainer ,将不能手动在header中设置cookies) /// save your response as file (if not need set it null) /// ManualResetEvent 并发集合点 (if not need set it null) /// MyHttpResponse public MyHttpResponse SendHttpRequest(string url, string queryStr, string method, List> heads, bool isAntoCookie, string saveFileName, System.Threading.ManualResetEvent manualResetEvent) { MyHttpResponse myHttpResponse = new MyHttpResponse(); HttpTimeLine timeline = new HttpTimeLine(); Stopwatch myWatch = null; Action WaitStartSignal = () => { if (manualResetEvent != null) { manualResetEvent.WaitOne(); } if (recordRequestTimeLine) { timeline.StartTime = DateTime.Now; myWatch.Start(); } }; if (recordRequestTimeLine) { myWatch = new Stopwatch(); } bool hasQueryString = !string.IsNullOrEmpty(queryStr); bool needBody = method.ToUpper() == "POST" || method.ToUpper() == "PUT"; WebRequest webRequest = null; WebResponse webResponse = null; try { //except POST / PUT other data will add the url,if you want adjust the rules change here if (!needBody && hasQueryString) { url += "?" + queryStr; queryStr = null; //make sure the data is null when Request is not post } webRequest = WebRequest.Create(url); webRequest.Timeout = httpTimeOut; webRequest.Method = method; //((HttpWebRequest)wr).KeepAlive = true; //((HttpWebRequest)wr).Pipelined = true; if (isAntoCookie) { ((HttpWebRequest)webRequest).CookieContainer = cookieContainer; //设置CookieContainer后,将不能在heads中手动添加cookie } if (defaultContentType != null) { webRequest.ContentType = defaultContentType; } HttpHelper.AddHttpHeads((HttpWebRequest)webRequest, requestDefaultHeads); HttpHelper.AddHttpHeads((HttpWebRequest)webRequest, heads); if (needBody) { if (hasQueryString) { byte[] tempBodyBytes = null; tempBodyBytes = RequestEncoding.GetBytes(queryStr); webRequest.ContentLength = tempBodyBytes.Length; WaitStartSignal(); //尽可能确保所有manualResetEvent都在数据完全准备完成后 Stream newStream = webRequest.GetRequestStream(); //连接建立Head已经发出,POST请求体还没有发送 (服务器可能会先回http 100) (包括tcp及TLS链接建立都在这里) newStream.Write(tempBodyBytes, 0, tempBodyBytes.Length); //请求交互完成 newStream.Close(); //释放写入流(MSDN的示例也是在此处释放)(执行到此处请求就已经结束) webResponse = webRequest.GetResponse(); //此处的GetResponse不会发起任何网络请求,只是为了填充webResponse if (recordRequestTimeLine) { myWatch.Stop(); } } else { webRequest.ContentLength = 0; WaitStartSignal(); webResponse = webRequest.GetResponse(); if (recordRequestTimeLine) { myWatch.Stop(); } } } else { WaitStartSignal(); webResponse = webRequest.GetResponse(); //GetResponse 方法向 Internet 资源发送请求并返回 WebResponse 实例。如果该请求已由 GetRequestStream 调用启动,则 GetResponse 方法完成该请求并返回任何响应。 if (recordRequestTimeLine) { myWatch.Stop(); } } if (isAntoCookie) { if (((HttpWebResponse)webResponse).Cookies != null && ((HttpWebResponse)webResponse).Cookies.Count > 0) { cookieContainer.Add(((HttpWebResponse)webResponse).Cookies); } } myHttpResponse.HttpResponse = (HttpWebResponse)webResponse; } catch (WebException wex) { if (recordRequestTimeLine) { if (myWatch.IsRunning) { myWatch.Stop(); } } if (wex.Response != null) { myHttpResponse.HttpResponse = (HttpWebResponse)wex.Response; } else { myHttpResponse.ErrorMes = wex.Message; GetError(wex); } } catch (Exception ex) { myHttpResponse.ErrorMes = ex.Message; GetError(ex); } finally { if (saveFileName != null) { myHttpResponse.SavaData(saveFileName); } myHttpResponse.SeekResponseStream(); if (webResponse != null) { webResponse.Close(); } if (recordRequestTimeLine) { if (myWatch.IsRunning) { myWatch.Stop(); } timeline.ElapsedTime = myWatch.ElapsedMilliseconds; } } if (recordRequestTimeLine) { myHttpResponse.TimeLine = timeline; } return myHttpResponse; } /// /// Send Http Request (post multipart data multipart/form-data) /// /// url (must start with protocol scheme like [http://,https:// ,ftp:// ,file:// ]) /// http Head list (if not need set it null) /// is use static CookieContainer /// normal body (if not need it ,just set it null) /// MultipartDate list(if not need it ,just set it null) /// celerity MultipartParameter your should set it like "a=1&b=2&c=3" and it will send in multipart format (if not need it ,just set it null) /// the MultipartParameter Encoding (if set it null ,it will be utf 8) /// save your response as file (if not need set it null) /// ManualResetEvent 并发集合点 (if not need set it null) /// MyHttpResponse public MyHttpResponse SendMultipartRequest(string url, List> heads, bool isAntoCookie, string bodyData, List multipartDateList, string bodyMultipartParameter, Encoding yourBodyEncoding, string saveFileName, System.Threading.ManualResetEvent manualResetEvent) { MyHttpResponse myHttpResponse = new MyHttpResponse(); HttpTimeLine timeline = new HttpTimeLine(); Encoding httpBodyEncoding = Encoding.UTF8; string defaultMultipartContentType = "application/octet-stream"; NameValueCollection stringDict = new NameValueCollection(); HttpWebRequest webRequest = null; HttpWebResponse httpWebResponse = null; Stopwatch myWatch = null; if (recordRequestTimeLine) { myWatch = new Stopwatch(); } if (yourBodyEncoding != null) { httpBodyEncoding = yourBodyEncoding; } var memStream = new MemoryStream(); webRequest = (HttpWebRequest)WebRequest.Create(url); //设置CookieContainer if (isAntoCookie) { ((HttpWebRequest)webRequest).CookieContainer = cookieContainer; } //写入http头 if (defaultContentType != null) { webRequest.ContentType = defaultContentType; } HttpHelper.AddHttpHeads(webRequest, requestDefaultHeads); HttpHelper.AddHttpHeads(webRequest, heads); // 边界符 var boundary = "---------------" + DateTime.Now.Ticks.ToString("x"); // 边界符 var beginBoundary = Encoding.ASCII.GetBytes(string.Format("--{0}\r\n", boundary)); // 最后的结束符 var endBoundary = Encoding.ASCII.GetBytes(string.Format("--{0}--\r\n", boundary)); // 设置属性 webRequest.Method = "POST"; webRequest.Timeout = httpTimeOut; webRequest.ContentType = "multipart/form-data; boundary=" + boundary; //写入常规body if (bodyData != null) { var bodybytes = httpBodyEncoding.GetBytes(bodyData); memStream.Write(bodybytes, 0, bodybytes.Length); } if (multipartDateList != null) { foreach (HttpMultipartDate nowMultipart in multipartDateList) { //Console.WriteLine(System.DateTime.Now.Ticks); //const string filePartHeader = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n" + "Content-Type: {2}\r\n\r\n"; //string nowPartHeader = "Content-Disposition: form-data"; StringBuilder nowPartHeader = new StringBuilder("Content-Disposition: form-data"); if (nowMultipart.Name != null) { //nowPartHeader.Append(string.Format("; name=\"{0}\"", nowMultipart.Name)); nowPartHeader.AppendFormat("; name=\"{0}\"", nowMultipart.Name); } if (nowMultipart.FileName != null) { nowPartHeader.AppendFormat("; filename=\"{0}\"", nowMultipart.FileName); } nowPartHeader.Append("\r\n"); nowPartHeader.AppendFormat("Content-Type: {0}", nowMultipart.ContentType == null ? defaultMultipartContentType : nowMultipart.ContentType); nowPartHeader.Append("\r\n\r\n"); //Console.WriteLine(System.DateTime.Now.Ticks); byte[] nowHeaderbytes = httpBodyEncoding.GetBytes(nowPartHeader.ToString()); memStream.Write(Encoding.ASCII.GetBytes("\r\n"), 0, Encoding.ASCII.GetBytes("\r\n").Length); memStream.Write(beginBoundary, 0, beginBoundary.Length); memStream.Write(nowHeaderbytes, 0, nowHeaderbytes.Length); //MultipartDate if (nowMultipart.IsFile) { try { using (var fileStream = new FileStream(nowMultipart.FileData, FileMode.Open, FileAccess.Read)) { byte[] buffer = new byte[1024]; int bytesRead; // =0 while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0) { memStream.Write(buffer, 0, bytesRead); } } } catch (Exception ex) { GetError(ex); myHttpResponse.ErrorMes = string.Format(@"the request not send , find error in multipartDateList [{0}]", ex.Message); return myHttpResponse; } } else { byte[] myCmd = httpBodyEncoding.GetBytes(nowMultipart.FileData == null ? "" : nowMultipart.FileData); memStream.Write(myCmd, 0, myCmd.Length); } } } //解析快捷Multipart表单形式post参数 if (bodyMultipartParameter != null) { string[] sArray = bodyMultipartParameter.Split('&'); foreach (string tempStr in sArray) { int myBreak = tempStr.IndexOf('='); if (myBreak == -1) { myHttpResponse.ErrorMes = string.Format(@"the request not send , can't find '=' in bodyMultipartParameter [{0}]", bodyMultipartParameter); return myHttpResponse; } stringDict.Add(tempStr.Substring(0, myBreak), tempStr.Substring(myBreak + 1)); } //快捷写入写入POST非文件参数 string bodyParameterFormat = "\r\n--" + boundary + "\r\nContent-Disposition: form-data; name=\"{0}\"" + "\r\n\r\n{1}"; for (int i = 0; i < stringDict.Count; i++) { try { byte[] formitembytes = httpBodyEncoding.GetBytes(string.Format(bodyParameterFormat, stringDict.GetKey(i), stringDict.Get(i))); memStream.Write(formitembytes, 0, formitembytes.Length); } catch (Exception ex) { GetError(ex); myHttpResponse.ErrorMes = string.Format(@"the request not send , find error in bodyMultipartParameter [{0}]", ex.Message); return myHttpResponse; } } } //写入最后的结束边界符 if (!(bodyMultipartParameter == null && multipartDateList == null)) { memStream.Write(Encoding.ASCII.GetBytes("\r\n"), 0, Encoding.ASCII.GetBytes("\r\n").Length); memStream.Write(endBoundary, 0, endBoundary.Length); } webRequest.ContentLength = memStream.Length; //开始请求 try { if (manualResetEvent != null) { manualResetEvent.WaitOne(); } var requestStream = webRequest.GetRequestStream(); memStream.Position = 0; var tempBuffer = new byte[memStream.Length]; memStream.Read(tempBuffer, 0, tempBuffer.Length); memStream.Close(); if (recordRequestTimeLine) { timeline.StartTime = DateTime.Now; myWatch.Start(); } requestStream.Write(tempBuffer, 0, tempBuffer.Length); requestStream.Close(); httpWebResponse = (HttpWebResponse)webRequest.GetResponse(); if (recordRequestTimeLine) { myWatch.Stop(); } if (isAntoCookie) { if (httpWebResponse.Cookies != null && httpWebResponse.Cookies.Count > 0) { cookieContainer.Add(httpWebResponse.Cookies); } } myHttpResponse.HttpResponse = httpWebResponse; } catch (WebException wex) { if (recordRequestTimeLine) { if (myWatch.IsRunning) { myWatch.Stop(); } } if (wex.Response != null) { myHttpResponse.HttpResponse = (HttpWebResponse)wex.Response; } else { myHttpResponse.ErrorMes = wex.Message; GetError(wex); } } catch (Exception ex) { myHttpResponse.ErrorMes = ex.Message; GetError(ex); } finally { if (saveFileName != null) { myHttpResponse.SavaData(saveFileName); } myHttpResponse.SeekResponseStream(); if (httpWebResponse != null) { httpWebResponse.Close(); } if (recordRequestTimeLine) { if (myWatch.IsRunning) { myWatch.Stop(); } timeline.ElapsedTime = myWatch.ElapsedMilliseconds; } } if (recordRequestTimeLine) { myHttpResponse.TimeLine = timeline; } return myHttpResponse; } /// /// Send Http Request (post multipart data) /// /// url (must start with protocol scheme like [http://,https:// ,ftp:// ,file:// ]) /// http Head list (if not need set it null) /// is use static CookieContainer /// normal body (if not need it ,just set it null) /// MultipartDate list(if not need it ,just set it null) /// celerity MultipartParameter your should set it like "a=1&b=2&c=3" and it will send in multipart format (if not need it ,just set it null) /// the MultipartParameter Encoding (if set it null ,it will be utf 8) /// back data public string HttpPostData(string url, List> heads, bool isAntoCookie, string bodyData, List multipartDateList, string bodyMultipartParameter, Encoding yourBodyEncoding) { return SendMultipartRequest(url, heads, isAntoCookie, bodyData, multipartDateList, bodyMultipartParameter, yourBodyEncoding, null, null).ResponseBody; } /// /// Send Http Request (post multipart data) /// /// url (must start with protocol scheme like [http://,https:// ,ftp:// ,file:// ]) /// http Head list (if not need it ,just set it null) /// normal body (if not need it ,just set it null) /// MultipartDate list(if not need it ,just set it null) /// celerity MultipartParameter like "a=1&b=2&c=3" (if not need it ,just set it null) /// the MultipartParameter Encoding (if set it null ,it will be utf 8) /// back data public string HttpPostData(string url, List> heads, string bodyData, List multipartDateList, string bodyMultipartParameter, Encoding yourBodyEncoding) { return HttpPostData(url, heads, withDefaultCookieContainer, bodyData, multipartDateList, bodyMultipartParameter, yourBodyEncoding); } /// /// Send Http Request (post multipart data) /// /// url (must start with protocol scheme like [http://,https:// ,ftp:// ,file:// ]) /// MultipartDate list(if not need it ,just set it null) /// back data public string HttpPostData(string url, HttpMultipartDate HttpMultipartDate) { return HttpPostData(url, null, null, new List() { HttpMultipartDate }, null, null); } #region static Func internal static void GetError(Exception ex) { //ErrorLog.PutInLog(ex); } /// /// DownloadFile with http /// /// url /// heads /// save File path public static void DownloadFile(string url, List> heads, string saveFileName) { using (WebClient client = new WebClient()) { HttpHelper.AddHttpHeads(client.Headers, heads); client.DownloadFile(url, saveFileName); } } /// /// DownloadFile with http /// /// url /// save File path public static void DownloadFile(string url, string saveFileName) { DownloadFile(url, null, saveFileName); } #endregion } } } ================================================ FILE: WebService/OperationReportService.cs ================================================ using FreeHttp.AutoTest.RunTimeStaticData; using FreeHttp.FiddlerHelper; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService { public class OperationReportService { [System.Runtime.Serialization.DataContract()] public class OperationDetail { public class OperationDetailCell { public DateTime InTime { get; set; } public DateTime OutTime { get; set; } public int RequestRuleCount { get; set; } public int ResponseRuleCount { get; set; } } [System.Runtime.Serialization.DataMember(Name = "UserToken")] public String UserToken { get; set; } [System.Runtime.Serialization.DataMember(Name = "UserMac")] public String UserMac { get; set; } [System.Runtime.Serialization.DataMember(Name = "MachineName")] public String MachineName { get; set; } [System.Runtime.Serialization.DataMember(Name = "OperationDetailCells")] public List OperationDetailCells { get; set; } public OperationDetail(string mac = "FF:FF:FF;FF:FF:FF" , string machineName =null ,string userToken=null) { UserMac = mac; MachineName = machineName; UserToken = userToken; OperationDetailCells = new List(); } public void AddCell(DateTime inTime, DateTime outTime, int requestRuleCount, int responseRuleCount) { if (OperationDetailCells == null) { OperationDetailCells = new List(); } OperationDetailCells.Add(new OperationDetailCell() { InTime = inTime, OutTime = outTime, RequestRuleCount = requestRuleCount, ResponseRuleCount = responseRuleCount }); } } private OperationDetail operationDetail; private DateTime? nowInTime; public List FiddlerRequestChangeRuleList { get; set; } = null; public List FiddlerResponseChangeRuleList { get; set; } = null; public ActuatorStaticDataCollection StaticDataCollection { get; set; } = null; public FiddlerRuleGroup RuleGroup { get; set; } = null; public OperationReportService() { operationDetail = new OperationDetail(WebService.UserComputerInfo.GetComputerMac(), WebService.UserComputerInfo.GetMachineName(), WebService.UserComputerInfo.UserToken); nowInTime = null; } public bool HasAnyOperation { get { return operationDetail.OperationDetailCells.Count > 0; } } public void InOperation(DateTime inTime) { nowInTime = inTime; } public void OutOperation( DateTime outTime, int requestRuleCount, int responseRuleCount) { operationDetail.AddCell(nowInTime == null ? outTime : (DateTime)nowInTime, outTime, requestRuleCount, responseRuleCount); nowInTime = null; } public async void ReportAsync() { //task需要在执行时设置CurrentThread.IsBackground,不能确保在设置成功前主线程不退出 Action reportAction = new Action(Report); await Task.Run(reportAction); } public void StartReportThread() { System.Threading.Thread reportThread = new System.Threading.Thread(new System.Threading.ThreadStart(Report)); reportThread.IsBackground = false; //使用Thread创建的线程其实默认IsBackground就是false reportThread.Start(); } private void Report() { if(System.Threading.Thread.CurrentThread.IsBackground)//大部分情况在async方法里使用这种方式也没有效果 1:不能确保线程执行到这里没有被主线程结束,2:对于async方法大部分情况执行这里的代码也是上一个线程,到await 才可能切换线程 (不过仍然可以通过同步的方式启动async方法) { System.Threading.Thread.CurrentThread.IsBackground = false; } if (operationDetail.OperationDetailCells.Count > 0) { string operationBody = null; //operationBody = Fiddler.WebFormats.JSON.JsonEncode(this.operationDetail); operationBody = MyHelper.MyJsonHelper.JsonDataContractJsonSerializer.ObjectToJsonStr(this.operationDetail); (new WebService.MyWebTool.MyHttp()).SendHttpRequest(string.Format("{0}freehttp/OperationReport",ConfigurationData.BaseUrl), operationBody, "POST", new List>() { new KeyValuePair("Content-Type", "application/json") }, false, null, null); if (FiddlerRequestChangeRuleList != null || FiddlerResponseChangeRuleList != null) { WebService.RemoteRuleService.UploadRulesAsync(FiddlerRequestChangeRuleList, FiddlerResponseChangeRuleList , StaticDataCollection , RuleGroup).Wait(); } } //System.GC.Collect(); } } } ================================================ FILE: WebService/RemoteLogService.cs ================================================ using FreeHttp.FiddlerHelper; using FreeHttp.MyHelper; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService { public class RemoteLogService { [System.Runtime.Serialization.DataContract()] private class RemoteLogDetail { [DataMember] public String UserToken { get; set; } [DataMember] public String UserMac { get; set; } [DataMember] public String MachineName { get; set; } [DataMember] public String Version { get; set; } [DataMember] public String Type { get; set; } [DataMember] public String Operation { get; set; } [DataMember] public String Message { get; set; } } public enum RemoteLogOperation { Unknown , Exception, SilentUpgrade , CheckUpgrade, SessionTamp, WindowLoad, RuleUpload, RemoteRule, AddRule, ShareRule, EditRule, ExecuteRule, CommonBusiness } public enum RemoteLogType { Unknown, Info, Warning, Error } private static HttpClient httpClient; static RemoteLogService() { httpClient = new HttpClient(); } public static async Task ReportLogAsync(string message , RemoteLogOperation operation = RemoteLogOperation.Unknown, RemoteLogType type = RemoteLogType.Info) { RemoteLogDetail remoteLogDetail = new RemoteLogDetail() { UserToken = WebService.UserComputerInfo.UserToken, UserMac = WebService.UserComputerInfo.GetComputerMac(), MachineName = WebService.UserComputerInfo.GetMachineName(), Version = UserComputerInfo.GetFreeHttpVersion(), Type = type.ToString(), Operation = operation.ToString(), Message = message }; try { await httpClient.PostAsync(string.Format(@"{0}freehttp/UserLogReport", ConfigurationData.BaseUrl), new StringContent(MyJsonHelper.JsonDataContractJsonSerializer.ObjectToJsonStr(remoteLogDetail), Encoding.UTF8, "application/json")); } catch{ } } } } ================================================ FILE: WebService/RemoteRuleService.cs ================================================ using FreeHttp.AutoTest.RunTimeStaticData; using FreeHttp.FiddlerHelper; using FreeHttp.MyHelper; using FreeHttp.WebService.DataModel; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService { public class RemoteRuleService { protected static HttpClient httpClient; static RemoteRuleService() { httpClient = new HttpClient(); } protected const string _getRuleUrl = @"{0}freehttp/RuleDetails?userToken={1}"; protected const string _uploadRuleUrl = @"{0}freehttp/RuleDetails?ruleversion={1}&{2}"; public static async Task GetRemoteRuleAsync(string token ,string apiUrl = _getRuleUrl) { HttpResponseMessage responseMessage = await httpClient.GetAsync(string.Format(apiUrl, ConfigurationData.BaseUrl, token)); if(responseMessage.StatusCode != System.Net.HttpStatusCode.OK) { return null; } RuleDetails ruleDetails = MyJsonHelper.JsonDataContractJsonSerializer.JsonStringToObject(await responseMessage.Content.ReadAsStringAsync()); if(ruleDetails==null) { return null; } string nowVersion = UserComputerInfo.GetRuleVersion(); if (ruleDetails.RuleStaticDataCell!=null) { //if (ruleDetails.RuleStaticData.RuleVersion == nowVersion) ruleDetails.StaticDataCollection = MyJsonHelper.JsonDataContractJsonSerializer.JsonStringToObject(ruleDetails.RuleStaticDataCell.RuleContent); } if (ruleDetails.RuleGroupCell != null) { //if (ruleDetails.RuleStaticData.RuleVersion == nowVersion) ruleDetails.RuleGroup = MyJsonHelper.JsonDataContractJsonSerializer.JsonStringToObject(ruleDetails.RuleGroupCell.RuleContent); } if (ruleDetails.RequestRuleCells!=null || ruleDetails.ResponseRuleCells!=null) { ruleDetails.ModificHttpRuleCollection = new FiddlerModificHttpRuleCollection(); ruleDetails.ModificHttpRuleCollection.RequestRuleList = new List(); ruleDetails.ModificHttpRuleCollection.ResponseRuleList = new List(); //fill RequestRule foreach (var cell in ruleDetails.RequestRuleCells) { if(cell.RuleVersion != nowVersion) { ruleDetails.ModificHttpRuleCollection.RequestRuleList.Add(new FiddlerRequestChange() { IsEnable =false, HttpFilter=new FiddlerHttpFilter() { Name = "unmatch rule version", UriMatch = new FiddlerUriMatch() { MatchMode = FiddlerUriMatchMode.Is, MatchUri = "unmatch rule version" } } }); } else { FiddlerRequestChange tmepRequestChange = MyJsonHelper.JsonDataContractJsonSerializer.JsonStringToObject(cell.RuleContent); ruleDetails.ModificHttpRuleCollection.RequestRuleList.Add(tmepRequestChange ?? new FiddlerRequestChange() { IsEnable = false, HttpFilter = new FiddlerHttpFilter() { Name = "can not parse this rule", UriMatch = new FiddlerUriMatch() { MatchMode = FiddlerUriMatchMode.Is, MatchUri = "can not parse this rule" } } }); } } //fill ResponseRule foreach (var cell in ruleDetails.ResponseRuleCells) { if (cell.RuleVersion != nowVersion) { ruleDetails.ModificHttpRuleCollection.ResponseRuleList.Add(new FiddlerResponseChange() { IsEnable = false, HttpFilter = new FiddlerHttpFilter() { Name = "unmatch rule version", UriMatch = new FiddlerUriMatch() { MatchMode = FiddlerUriMatchMode.Is, MatchUri = "unmatch rule version" } } }); } else { FiddlerResponseChange tmepRequestChange = MyJsonHelper.JsonDataContractJsonSerializer.JsonStringToObject(cell.RuleContent); ruleDetails.ModificHttpRuleCollection.ResponseRuleList.Add(tmepRequestChange ?? new FiddlerResponseChange() { IsEnable = false, HttpFilter = new FiddlerHttpFilter() { Name = "can not parse this rule", UriMatch = new FiddlerUriMatch() { MatchMode = FiddlerUriMatchMode.Is, MatchUri = "can not parse this rule" } } }); } } } return ruleDetails; } public static async Task UploadRulesAsync(List requestRules, List responseRules, ActuatorStaticDataCollection staticDataCollection = null,FiddlerRuleGroup ruleGroup = null ,string executeUrl = null) where T1 : IFiddlerHttpTamper where T2 : IFiddlerHttpTamper { MultipartFormDataContent multipartFormData = new MultipartFormDataContent(); if (staticDataCollection != null) { multipartFormData.Add(new StringContent(MyJsonHelper.JsonDataContractJsonSerializer.ObjectToJsonStr(staticDataCollection)), "staticData"); } if (ruleGroup != null) { multipartFormData.Add(new StringContent(MyJsonHelper.JsonDataContractJsonSerializer.ObjectToJsonStr(ruleGroup)), "groupData"); } if (requestRules != null) { foreach (var request in requestRules) { multipartFormData.Add(new StringContent(MyJsonHelper.JsonDataContractJsonSerializer.ObjectToJsonStr(request)), "requestRule"); } } if (responseRules != null) { foreach (var response in responseRules) { multipartFormData.Add(new StringContent(MyJsonHelper.JsonDataContractJsonSerializer.ObjectToJsonStr(response)), "responseRule"); } } try { HttpResponseMessage httpResponseMessage = await httpClient.PostAsync(string.Format(executeUrl ?? _uploadRuleUrl, ConfigurationData.BaseUrl, UserComputerInfo.GetRuleVersion(), WebService.UserComputerInfo.GetFreeHttpUser()), multipartFormData); if (httpResponseMessage.IsSuccessStatusCode) { return await httpResponseMessage.Content.ReadAsStringAsync(); } } catch (Exception ex) { await RemoteLogService.ReportLogAsync(ex.ToString(), RemoteLogService.RemoteLogOperation.RuleUpload, RemoteLogService.RemoteLogType.Error); } finally { } return null; } } } ================================================ FILE: WebService/ShareRuleService.cs ================================================ using FreeHttp.FiddlerHelper; using FreeHttp.MyHelper; using FreeHttp.WebService.DataModel; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService { public class ShareRuleService: RemoteRuleService { public ShareRuleSummary NowShareRuleSummary { get;private set; } public RuleDetails NowSaveRuleDetails { get; set; } public RuleDetails NowShowRuleDetails { get; set; } private string _userInfoStr; public ShareRuleService(string personalUserInfoStr) { NowShareRuleSummary = new ShareRuleSummary(); _userInfoStr = personalUserInfoStr; } public async Task GetShareRuleSummaryAsync() { try { HttpResponseMessage responseMessage = await httpClient.GetAsync($"{ConfigurationData.BaseUrl}freehttp/sharerule/sharerulesummary?{_userInfoStr}"); if (responseMessage.StatusCode != System.Net.HttpStatusCode.OK) { await RemoteLogService.ReportLogAsync("GetPersonalShareRulesAsync fail", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); } else { NowShareRuleSummary = MyJsonHelper.JsonDataContractJsonSerializer.JsonStringToObject(await responseMessage.Content.ReadAsStringAsync()); if (NowShareRuleSummary == null) { await RemoteLogService.ReportLogAsync($"JsonStringToObject fail in【GetPersonalShareRulesAsync】 that {await responseMessage.Content.ReadAsStringAsync()}", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); } else { return NowShareRuleSummary; } } } catch (Exception ex) { await RemoteLogService.ReportLogAsync(ex.ToString(), RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); } return default; } public async Task> SaveShareRulesAsync(string remark=null,bool isUploadStaticData=false) { string tempExecuteUrl = null; if (!string.IsNullOrEmpty(remark)) { tempExecuteUrl = $"{{0}}freehttp/sharerule/create?remark={remark}&ruleversion={{1}}&{{2}}"; } if(NowSaveRuleDetails==null || NowSaveRuleDetails.ModificHttpRuleCollection==null) { _ = RemoteLogService.ReportLogAsync("SaveShareRules fail in ShareRuleService that NowSaveRuleDetails is null", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); return default; } string response = await RemoteRuleService.UploadRulesAsync( NowSaveRuleDetails.ModificHttpRuleCollection?.RequestRuleList, NowSaveRuleDetails.ModificHttpRuleCollection?.ResponseRuleList, isUploadStaticData? NowSaveRuleDetails.StaticDataCollection:null, null, tempExecuteUrl); BaseResultModel httpResult = MyJsonHelper.JsonDataContractJsonSerializer.JsonStringToObject>(response); if(httpResult==null) { _ = RemoteLogService.ReportLogAsync($"SaveShareRules fail in ShareRuleService that JsonDataContractJsonSerializer fial [{response}]", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); } else { return new KeyValuePair(httpResult.Result, remark); } return default; } public async Task UpdateShareRulesAsync(string shareToken, bool isUploadStaticData = false) { string tempExecuteUrl = null; if (string.IsNullOrEmpty(shareToken)) { return false; } tempExecuteUrl = $"{{0}}freehttp/sharerule/update?sharetoken={shareToken}&ruleversion={{1}}&{{2}}"; if (NowSaveRuleDetails == null || NowSaveRuleDetails.ModificHttpRuleCollection == null) { _ = RemoteLogService.ReportLogAsync("SaveShareRules fail in ShareRuleService that NowSaveRuleDetails is null", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); return default; } string response = await RemoteRuleService.UploadRulesAsync( NowSaveRuleDetails.ModificHttpRuleCollection?.RequestRuleList, NowSaveRuleDetails.ModificHttpRuleCollection?.ResponseRuleList, isUploadStaticData ? NowSaveRuleDetails.StaticDataCollection : null, null, tempExecuteUrl); BaseResultModel httpResult = MyJsonHelper.JsonDataContractJsonSerializer.JsonStringToObject>(response); if (httpResult == null) { _ = RemoteLogService.ReportLogAsync($"SaveShareRules fail in ShareRuleService that JsonDataContractJsonSerializer fial [{response}]", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); } else { if(httpResult.Status== ReturnStatus.Success) { return true; } } return false; } public async Task GetShareRuleDetailAsync(string token) { if(string.IsNullOrEmpty(token)) { return null; } NowShowRuleDetails = await RemoteRuleService.GetRemoteRuleAsync(token, "{0}freehttp/ShareRule/get?shareToken={1}"); return NowShowRuleDetails; } public async Task DeleteShareRuleDetailAsync(string token) { try { HttpResponseMessage responseMessage = await httpClient.DeleteAsync($"{ConfigurationData.BaseUrl}freehttp/sharerule?sharetoken={token}&{_userInfoStr}"); if (responseMessage.StatusCode != System.Net.HttpStatusCode.OK) { string errorMes =await responseMessage.Content.ReadAsStringAsync(); MyHelper.MyGlobalHelper.PutGlobalMessage(null,new MyGlobalHelper.GlobalMessageEventArgs(true, $"remove share token fial that :{errorMes}")); await RemoteLogService.ReportLogAsync($"DeleteShareRuleDetailAsync fail : {errorMes}", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); } else { if (MyJsonHelper.JsonDataContractJsonSerializer.JsonStringToObject>(await responseMessage.Content.ReadAsStringAsync()) == null) { await RemoteLogService.ReportLogAsync($"JsonStringToObject fail in【DeleteShareRuleDetailAsync】 that {await responseMessage.Content.ReadAsStringAsync()}", RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); } else { return true; } } } catch (Exception ex) { await RemoteLogService.ReportLogAsync(ex.ToString(), RemoteLogService.RemoteLogOperation.ShareRule, RemoteLogService.RemoteLogType.Error); } return false; } } } ================================================ FILE: WebService/UpgradeService.cs ================================================ using System; using System.Linq; using System.Management; using System.Text; using System.Threading.Tasks; using System.Threading; using System.Runtime.Serialization; using FreeHttp.MyHelper; using System.Net.Http; namespace FreeHttp.WebService { public class UpgradeService { [DataContract] public class UpdateInfo { [DataMember] public bool isNeedUpdata { get; set; } [DataMember] public bool isSilentUpgrade { get; set; } [DataMember] public bool isShowMessage { get; set; } [DataMember] public string messageFlag { get; set; } [DataMember] public string url { get; set; } [DataMember] public string message { get; set; } [DataMember] public bool isForceEnter { get; set; } [DataMember] public string uuid { get; set; } } public class UpgradeServiceEventArgs : EventArgs { public bool IsSuccess { get; set; } public UpdateInfo UpgradeInfo { get; set; } public UpgradeServiceEventArgs(bool isSuccess, UpdateInfo upgradeInfo) { IsSuccess = isSuccess; UpgradeInfo = upgradeInfo; } } MyWebTool.MyHttp myHttp; public event EventHandler GetUpgradeMes; public string SilentUpgradeUrl { get; private set; } private static HttpClient httpClient; static UpgradeService() { httpClient = new HttpClient(); } public UpgradeService() { MyWebTool.MyHttp.EnableServerCertificateValidation = true; myHttp = new MyWebTool.MyHttp(); } public void StartCheckUpgrade() { //Task checkUpgradeCheckUpgrade = new Task(CheckUpgrade); //checkUpgradeCheckUpgrade.Start(); //checkUpgradeCheckUpgrade.ContinueWith((task) => { StartCheckUpgrade(); }); Task checkUpgradeTask = new Task(() => { //string tempResponse = myHttp.SendData(string.Format(@"{0}freehttp/UpdateCheck/v{1}?dotnetrelease={2}&{3}", ConfigurationData.BaseUrl, System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(), UserComputerInfo.GetDotNetRelease(), UserComputerInfo.GetFreeHttpUser())); //string isNeedUpdata = FreeHttp.AutoTest.ParameterizationPick.ParameterPickHelper.PickStrParameter("\"isNeedUpdata\":", ",", tempResponse); //string isSilentUpgrade = FreeHttp.AutoTest.ParameterizationPick.ParameterPickHelper.PickStrParameter("\"isSilentUpgrade\":", ",", tempResponse); //string url = FreeHttp.AutoTest.ParameterizationPick.ParameterPickHelper.PickStrParameter("\"url\":\"", "\",", tempResponse); //string message = FreeHttp.AutoTest.ParameterizationPick.ParameterPickHelper.PickStrParameter("\"message\":\"", "\"", tempResponse); //if (string.IsNullOrEmpty(isNeedUpdata)) //{ // return new UpgradeServiceEventArgs(false, null); //} //if (isNeedUpdata == "true") //{ // if (isSilentUpgrade == "true") SilentUpgradeUrl = url; // return new UpgradeServiceEventArgs(true, url, null, isSilentUpgrade == "true"); //} //if (!string.IsNullOrEmpty(message)) //{ // return new UpgradeServiceEventArgs(true, null, message); //} //return null; try { HttpResponseMessage response = httpClient.GetAsync(string.Format(@"{0}freehttp/UpdateCheck/v{1}?dotnetrelease={2}&{3}", ConfigurationData.BaseUrl, UserComputerInfo.GetFreeHttpVersion(), UserComputerInfo.GetDotNetRelease(), UserComputerInfo.GetFreeHttpUser())).GetAwaiter().GetResult(); if (response.IsSuccessStatusCode) { UpdateInfo updateInfo = MyJsonHelper.JsonDataContractJsonSerializer.JsonStringToObject(response.Content.ReadAsStringAsync().GetAwaiter().GetResult()); if (updateInfo == null) { _ = RemoteLogService.ReportLogAsync("JsonStringToObject fail that StartCheckUpgrade", RemoteLogService.RemoteLogOperation.CheckUpgrade, RemoteLogService.RemoteLogType.Error); return new UpgradeServiceEventArgs(false, null); } if (updateInfo.isNeedUpdata && updateInfo.isSilentUpgrade && !string.IsNullOrEmpty(updateInfo.url)) { SilentUpgradeUrl = updateInfo.url; } return new UpgradeServiceEventArgs(true, updateInfo); } else { _ = RemoteLogService.ReportLogAsync("StartCheckUpgrade get error response", RemoteLogService.RemoteLogOperation.CheckUpgrade, RemoteLogService.RemoteLogType.Error); return new UpgradeServiceEventArgs(false, null); } } catch(Exception ex) { _ = RemoteLogService.ReportLogAsync(ex.ToString(), RemoteLogService.RemoteLogOperation.Exception, RemoteLogService.RemoteLogType.Error); return new UpgradeServiceEventArgs(false, null); } }); checkUpgradeTask.Start(); checkUpgradeTask.ContinueWith((task) => { if (checkUpgradeTask.Result != null) this.GetUpgradeMes(this, checkUpgradeTask.Result); }); } public void TrySilentUpgrade() { if (string.IsNullOrEmpty(SilentUpgradeUrl)) { return; } System.Threading.Thread silentUpgradeThread = new System.Threading.Thread(new System.Threading.ThreadStart(StartSilentUpgrade)); silentUpgradeThread.IsBackground = false; //使用Thread创建的线程其实默认IsBackground就是false silentUpgradeThread.Start(); } private void StartSilentUpgrade() { if (System.Threading.Thread.CurrentThread.IsBackground)//大部分情况在async方法里使用这种方式也没有效果 1:不能确保线程执行到这里没有被主线程结束,2:对于async方法大部分情况执行这里的代码也是上一个线程,到await 才可能切换线程 (不过仍然可以通过同步的方式启动async方法) { System.Threading.Thread.CurrentThread.IsBackground = false; } //_ = await RemoteLogService.ReportLogAsync() 父进程可能先结束,不会管以异步启动的任务是否完成 RemoteLogService.ReportLogAsync("start SilentUpgrade", RemoteLogService.RemoteLogOperation.SilentUpgrade, RemoteLogService.RemoteLogType.Info).Wait(); //MyHelper.SelfUpgradeHelp.UpdateDllAsync("https://lulianqi.com/file/FreeHttpUpgradeFile").Wait(); MyHelper.SelfUpgradeHelp.UpdateDllAsync(SilentUpgradeUrl).ContinueWith((result) => { if (!string.IsNullOrEmpty(result.Result)) { RemoteLogService.ReportLogAsync(result.Result, RemoteLogService.RemoteLogOperation.SilentUpgrade, RemoteLogService.RemoteLogType.Error).Wait(); } else { RemoteLogService.ReportLogAsync("SilentUpgrade complete", RemoteLogService.RemoteLogOperation.SilentUpgrade, RemoteLogService.RemoteLogType.Info).Wait(); } }).Wait(); } /// /// give up maintenance /// public void StartCheckUpgradeThread() { Thread checkUpgradeTaskThread = new Thread(new ThreadStart(CheckUpgrade)); checkUpgradeTaskThread.Name = "CheckUpgradeTaskThread"; checkUpgradeTaskThread.Priority = ThreadPriority.Normal; checkUpgradeTaskThread.IsBackground = true; checkUpgradeTaskThread.Start(); } /// /// give up maintenance /// private void CheckUpgrade() { string tempResponse = myHttp.SendData(string.Format(@"{0}freehttp/UpdateCheck/v1.1?user={1}", ConfigurationData.BaseUrl, UserComputerInfo.GetComputerMac())); string isNeedUpdata = FreeHttp.AutoTest.ParameterizationPick.ParameterPickHelper.PickStrParameter("\"isNeedUpdata\":", ",", tempResponse); string url = FreeHttp.AutoTest.ParameterizationPick.ParameterPickHelper.PickStrParameter("\"url\":", ",", tempResponse); string message = FreeHttp.AutoTest.ParameterizationPick.ParameterPickHelper.PickStrParameter("\"message\":", ",", tempResponse); if (string.IsNullOrEmpty(isNeedUpdata)) { this.GetUpgradeMes(this, new UpgradeServiceEventArgs(false, null)); } if (isNeedUpdata == "true") { this.GetUpgradeMes(this, new UpgradeServiceEventArgs(true, new UpdateInfo() { url = url})); } } } } ================================================ FILE: WebService/UserComputerInfo.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Management; using System.Text; using System.Threading.Tasks; namespace FreeHttp.WebService { internal class UserComputerInfo { internal static string UserToken { get; set; } internal static string GetComputerMac() { ManagementClass mc = null; ManagementObjectCollection moc = null; try { string mac = ""; mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"] == true) { mac = mo["MacAddress"].ToString(); break; } } return mac; } catch (Exception ex) { return ex.Message; } finally { if (moc != null) { moc.Dispose(); } if (mc != null) { mc.Dispose(); } } } internal static string GetMachineName() { try { return System.Environment.MachineName; } catch { return ""; } } internal static string GetUserName() { try { return System.Environment.UserName; } catch { return ""; } } internal static string GetFreeHttpVersion() { return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); } internal static string GetRuleVersion() { return ConfigurationData.RuleVersion; } internal static string GetFreeHttpUser() { if(string.IsNullOrEmpty(UserToken)) { return string.Format("user={0}&username={1}&machinename={2}", GetComputerMac(), GetUserName(), GetMachineName()); } else { return string.Format("user={0}&username={1}&machinename={2}&usertoken={3}", GetComputerMac(), GetUserName(), GetMachineName(), UserToken); } } internal static int GetDotNetRelease() { const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\"; using (Microsoft.Win32.RegistryKey ndpKey = Microsoft.Win32.RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, Microsoft.Win32.RegistryView.Registry32).OpenSubKey(subkey)) { if (ndpKey != null && ndpKey.GetValue("Release") != null) { return (int)ndpKey.GetValue("Release"); } return 0; } } } } ================================================ FILE: packages.config ================================================  ================================================ FILE: readme.md ================================================ ### 基本逻辑 ![](https://img2018.cnblogs.com/blog/209007/201902/209007-20190225195756643-2027300818.png) ### 环境搭建 * Fiddler 扩展插件开发环境配置 请参考官方文档 https://docs.telerik.com/fiddler/Extend-Fiddler/ExtendWithDotNet (该文档已经详细说明了搭建及调试项目的过程)
* Fiddler 对外开放接口可以参见《Lulu.Debugging with Fiddler》(书中不仅介绍Fiddler的起源,还详细介绍了Fiddler的使用,其中就包括对外提供的扩展接口)
* 当前FreeHttp扩展插件开发使用.net framework 版本为4.5(您在配置开发环境时需要注意您调试引用的Fiddler 的版本,及您开发环境所支持的最高版本)

### 基本结构 ![](https://img2018.cnblogs.com/blog/209007/201902/209007-20190226113810174-1578807533.png) >>1:AutoTest命名空间主要提供参数化数据的拾取及管理
>>2:FiddlerHelper命名空间 提供与Fiddler篡改直接相关的功能
>>3:FreeHttpControl命名空间提供UI界面及窗体操作逻辑
>>4:HttpHelper命名空间提供对HTTP协议报文处理的功能
>>5:MyHelper 命名空间提供公共的辅助工具
>>6:WebService命名空间提供使网络服务的功能
>>7:FiddlerFreeHttp继承至IAutoTamper,他是与FIddler数据交换的入口 , FiddlerSessionTamper是FiddlerFreeHttp的工具类
### FreeHttp使用说明 * 操作说明见https://www.cnblogs.com/lulianqi/p/10428551.html
* 您可以根据自己的需要直接修改FreeHttp各部分的代码以改动或扩展FreeHttp的功能,使他更符合您的个性化需求。
* 如果您发现了任何问题或是意见请请在https://github.com/lulianqi/FreeHttp/issues 直接提出 (您也可能通过邮箱联系mycllq@hotmail.com提出您的问题或建议)